Ich versuche, ein einfaches Python-Skript aus R mit System2() aufrufen. Ich habe einige Informationen gelesen, die ich vage fand, dass, wenn 'zu viel' Speicher verwendet wird, es nicht funktionieren wird.Neustart R in Rstudio
Wenn ich ein großes Dataset laden und einige Informationen darin verwenden, um als Argumente in system2() zu übergeben, funktioniert es nur, wenn ich im Aufruf Rstudio manuell auf "Restart R" klicke.
Was ich will:
df <- read.csv('some_large_file.csv')
###extracting some info called 'args_vec'
for(arg in args_vec){
system2('python', args)
}
Dies wird nicht wie arbeiten. Die for-Schleife wird einfach übergeben.
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)
}
This answer nicht recht bekommen, was ich will. Nämlich, es funktioniert nicht für mich innerhalb von Rstudio und es ruft "System" auf (was in diesem Fall das gleiche Problem wie "System2" darstellt). In der Tat, wenn ich die Antwort referenzierte oben in meiner Rprofile.site-Datei, schloss es sofort sofort:
Ich versuchte den Vorschlag als eine normale Funktion (anstatt mit "makeActiveBinding", 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") }
habe ich versucht, über diese beiden Optionen eine Reihe von Variationen, aber dies ist immer lang, was wie eine einfache Frage anfühlt. viel ich über den Startvorgang noch nicht verstehen Es gibt und „makeActiveBinding“ ist ein bisschen mysteriös Kann mir jemand in die richtige Richtung zeigen
Sind Sie sicher, dass Sie wirklich das ganze R neu starten müssen? Wenn Sie 'rm (list = ls())' verwenden, was den Arbeitsbereich bereinigt, und vielleicht die manuelle Garbage Collection mit 'gc()' für den Fall, sollte das ausreichen? –
@BenHunter schließt sofort RStudio, weil Sie 'q' nach dem Neustart aufrufen. Nehmen Sie den Aufruf von "q" und es sollte genau dasselbe tun, als wenn Sie in RStudio "R neu starten" wählen. –
@Hemmo, ich weiß, das ist eine Option, und in diesem Fall könnte es eine gute Wahl sein, aber ich würde gerne wissen, wie ich das lösen kann, ohne meinen Arbeitsbereich zu verlieren (oder zu speichern, zu entfernen und dann neu zu laden) es). –