के भीतर पुनरारंभ करें मैं system2() का उपयोग कर आर के भीतर से एक साधारण पायथन लिपि को कॉल करने का प्रयास कर रहा हूं। मैंने कुछ जानकारी पढ़ी है जो मुझे अस्पष्ट पाया गया है कि अगर 'बहुत ज्यादा' स्मृति का उपयोग किया जाता है, तो यह काम नहीं करेगा।Rstudio
यदि मैं एक बड़ा डेटासेट लोड करता हूं और सिस्टम 2() में जाने के लिए तर्क के रूप में उपयोग करने के लिए इसमें कुछ जानकारी का उपयोग करता हूं, तो यह केवल तभी काम करेगा जब मैं मैन्युअल रूप से कॉल Rstudio में "पुनरारंभ करें" पर क्लिक करता हूं।
मुझे क्या करना चाहते हैं:
df <- read.csv('some_large_file.csv')
###extracting some info called 'args_vec'
for(arg in args_vec){
system2('python', args)
}
यह वह जगह है के रूप में काम नहीं करेगा। लूप के लिए बस पारित किया गया है।
मैं क्या जरूरत है:
df <- read.csv('some_large_file.csv')
###extracting some info called 'args_vec'
###something that 'restarts' R
for(arg in args_vec){
system2('python', args)
}
This answer काफी मैं क्या चाहते हैं नहीं मिलता है। अर्थात्, यह मेरे लिए Rstudio के भीतर काम नहीं करता है और यह "सिस्टम" कहता है (जो इस मामले में "system2" के समान समस्या प्रस्तुत करता है)। असल में, जब मैंने अपने Rprofile.site फ़ाइल में ऊपर उल्लिखित उत्तर दिया, तो यह तुरंत बंद हो गया:
मैंने सुझाव दिया कि सामान्य कार्य के रूप में सुझाव ("makeActive बाइंडिंग" का उपयोग करने के बजाय, और यह काफी काम नहीं करता ।
##restart R in r session -- doesn't work
makeActiveBinding("refresh", function() { system("R --save"); q("no") }, .GlobalEnv)
##nor did this:
refresh <- function() { system("R --save"); q("no") }
मैं ऊपर इन दो विकल्पों के रूपांतरों के एक नंबर की कोशिश की है, लेकिन इस समय क्या एक सरल प्रश्न की तरह लगता है के लिए हो रही है। वहाँ एक बहुत मैं अभी तक स्टार्टअप प्रक्रिया के बारे में समझ में नहीं आता और "makeActiveBinding" है थोड़ा रहस्यमय है। क्या कोई मुझे सही दिशा में इंगित कर सकता है?
क्या आप वाकई पूरे आर को पुनरारंभ करने की ज़रूरत है? यदि आप 'rm (list = ls()) का उपयोग करते हैं, जो वर्कस्पेस को साफ़ करता है, और शायद 'gc()' के साथ मैन्युअल कचरा संग्रह, तो यह पर्याप्त होना चाहिए? –
@BenHunter यह तुरंत RStudio बंद कर रहा है क्योंकि आप पुनरारंभ करने के बाद 'q' को कॉल कर रहे हैं। कॉल को 'q' पर ले जाएं और इसे बिल्कुल वही करना चाहिए जैसे RStudio में पुनरारंभ आर का चयन करना। –
@ हेमो, मुझे पता है कि यह एक विकल्प है, और इस मामले में यह एक अच्छा विकल्प हो सकता है, लेकिन मैं वास्तव में यह जानना चाहता हूं कि इसे कैसे हल किया जाए, जैसा कि, मेरे वर्कस्पेस को खोए बिना (या सहेजना, निकालना, और फिर पुनः लोड करना यह)। –