Zrestartuj R w Rstudio

Próbuję wywołać prosty skrypt Pythona z poziomu R przy użyciu system2 (). Przeczytałem pewne informacje, które uważałem za niejasne, które mówiły, że jeśli używana jest „za dużo” pamięci, nie zadziała.

Jeśli załaduję duży zestaw danych i użyję pewnych informacji w nim, aby użyć go jako argumentu do przejścia do system2 (), zadziała tylko wtedy, gdy ręcznie kliknę „Restart R” w wywołaniu Rstudio.

Czego chcę:

df <- read.csv('some_large_file.csv')
###extracting some info called 'args_vec'
for(arg in args_vec){
    system2('python', args)
}

To nie zadziała tak jak jest. Pętla for jest po prostu pomijana.

Czego potrzebuję:

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)
}

Ta odpowiedź nie do końca to, czego chcę. Mianowicie, nie działa dla mnie w Rstudio i wywołuje „system” (co w tym przypadku stanowi ten sam problem, co „system2”). W rzeczywistości, kiedy umieściłem odpowiedź, o której mowa powyżej w moim pliku Rprofile.site, natychmiast zamknięto rstudio:

Próbowałem tej sugestii jako normalnej funkcji (zamiast używać „makeActiveBinding” i to nie działało całkiem dobrze).

##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") }

Wypróbowałem kilka wariantów tych dwóch opcji powyżej, ale to trwa długo, co wydaje się prostym pytaniem. Jest wiele rzeczy, których nie rozumiem jeszcze z procesu uruchamiania, a „makeActiveBinding” jest nieco tajemniczy. Czy ktoś może wskazać mi właściwy kierunek?

questionAnswers(3)

yourAnswerToTheQuestion