Starten Sie R in Rstudio neu

Ich versuche, ein einfaches Python-Skript aus R mit system2 () aufzurufen. Ich habe einige vage Informationen gelesen, die besagten, dass es nicht funktioniert, wenn zu viel Speicher verwendet wird.

Wenn ich einen großen Datensatz lade und einige Informationen als Argumente für die Übergabe an system2 () verwende, funktioniert dies nur, wenn ich im Aufruf von Rstudio manuell auf "R neu starten" klicke.

Was ich möchte:

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

Das wird so nicht funktionieren. Die for-Schleife wird einfach übergangen.

Was ich brauche:

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

Diese Antwort verstehe nicht ganz was ich will. In Rstudio funktioniert es nämlich nicht und es nennt sich "system" (was in diesem Fall dasselbe Problem wie "system2" darstellt). Wenn ich die Antwort, auf die oben verwiesen wurde, in meine Rprofile.site-Datei schreibe, wird rstudio tatsächlich sofort geschlossen:

Ich habe den Vorschlag als normale Funktion ausprobiert (anstatt "makeActiveBinding" zu verwenden, und es hat nicht ganz funktioniert.

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

Ich habe oben eine Reihe von Variationen dieser beiden Optionen ausprobiert, aber das wird langsam lang, was sich wie eine einfache Frage anfühlt. Ich verstehe noch nicht viel über den Startvorgang und "makeActiveBinding" ist ein bisschen mysteriös. Kann mich jemand in die richtige Richtung weisen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage