2013-10-19 11 views
13

Ich muss mehrere Skripte über die Bash-Shell mit Rscript ausführen und einige Funktionen, die ich verwende, erfordern die Funktion isGeneric. in diesem Fall jedoch am Ende der Prozess, der wie (zum Beispiel):Rscript konnte die Funktion nicht finden

Error in .getLogLik() : could not 
find function "isGeneric" 
Calls: main -> dredge -> .getLik -> .getLogLik 
Execution halted 

Dies als

# in the bash shell 
echo "isGeneric('apply')" > /tmp/test.R 
Rscript /tmp/test.R 

Ergebnis folgt wiedergegeben werden kann:

Error: could not find function "isGeneric" 
Execution halted 

Wenn wir jedoch öffnen ein R Sitzung und geben Sie Folgendes ein, es funktioniert:

# in the R shell 
isGeneric('apply') 
[1] FALSE 

Wüssten Sie, woher das Problem kommt und wie Sie es beheben können?

Antwort

21

Gemäß help(Rscript) lädt Rscript das Methodenpaket standardmäßig nicht, weil es zeitaufwendig ist. Also entweder Sie benötigen sie auf der Kommandozeile angeben:

Rscript --default-packages=methods file.R 

Oder library(methods) an der Spitze der Datei, die Sie aufrufen.

+0

Dank Joshua funktioniert es jetzt gut. Und leider habe ich die Verbindung zwischen 'isGeneric' und dem' methods' Paket nicht gesehen. –

+0

@LudoDuvaux: keine Sorgen. Es ist kein offensichtlicher Link, es sei denn, Sie haben dieses Problem schon einmal bemerkt. –

+3

Ich bin gerade mit "Fehler: Funktion konnte nicht gefunden" is "'. Die Verbindung dort ist noch weniger offensichtlich! – DavidC

Verwandte Themen