Ich möchte ein Skript file.R
mit Rscript
ausführen. In file.R
verwende ich das Paket dplyr
.Rscript and Packages: Wie und wann bestimmen, welche Pakete geladen werden?
# file.R
df <- data.frame(ID,x,y,z,...)
library(dplyr)
filter(df, ID != "null")
......
Wenn ich in der Batch-Datei alle Optionen nicht angeben, funktioniert alles einwandfrei als file.R
die Linie jedoch library(dplyr)
# 1) no specification of packages in the batch file
Rscript.exe file.R arg1 arg2 arg3 > outputFile.Rout 2>&1
enthält, wenn ich default-packages=utils
in der Batchdatei hinzufügen,
der Teil von file.R
mit dplyr
funktioniert nicht mehr (Error in filter(df, ID != 'null') : Object 'ID' could not be found
)
Seit ?Rscript
sagt
--default-packages=list
where list is a comma-separated list of package names or NULL
ich versucht, indem --default-packages=utils,dplyr
,
# 3) specification of packages utils and dplyr in the batch file
Rscript.exe default-packages=utils,dplyr file.R arg1 arg2 arg3 > outputFile.Rout 2>&1
, die den gleichen Fehler verursacht, wie in 2
Warum ist Batch-Datei 1
die einzige, die funktioniert? Ich rufe das gleiche R-Skript in allen 3 Alternativen auf.
Gibt es einen Grund, warum Sie die Pakete an der Befehlszeile angeben müssen, anstatt einfach die entsprechende 'Bibliothek' am Anfang Ihres Skripts zu platzieren? – cdeterman
Die Sache ist, dass die 'Bibliothek' am Anfang des Skripts nicht die Lösung ist, und das ist der Grund für meine Veröffentlichung. In allen 3 Alternativen habe ich das gleiche Skript 'file.R' aufgerufen, das die Bibliotheksbefehle am Anfang enthielt. – rmuc8
Ich dachte, Sie sagten, dass Option 1 funktioniert, wo Sie keine Optionen angeben? Missverstehe ich deine Aussage? Dein Problem ist nicht ganz klar. – cdeterman