Ich habe ein Paket, das von nicht interaktiven Skripten verwendet werden soll, die über Rscript ausgeführt werden. Aber ich möchte auch in der Lage sein, es in einer interaktiven Sitzung zu laden, vor allem für Debugging-Zwecke. Wenn in einem Rscript oder einer anderen nicht-interaktiven Sitzung verwendet, möchte ich .onLoad verwenden, um einige Initialisierung zu tun, so dass ich etwas entlang der Linien von:
.onLoad <- function(libname, pkgname) {
if ( !interactive() ) {
# Do some stuff
} else {
# Do something slightly different
}
Das Problem ist, dass auch in einer interaktiven Sitzung, interaktive() ist FALSE innerhalb .onLoad zurückgegeben. Ich teste dies über:
.onLoad <- function(libname, pkgname) {
print( paste( "interactive() = ", interactive(), collapse="" ) )
}
Als ich dann build()
y install()
(unter Verwendung von devtools) fügt die Installation die Bibliothek mit der Meldung "interactive() = FALSE"
.
Irgendwelche Ideen? Weder in der Dokumentation zu .onLoad() noch zu interactive() steht etwas dazu.
Phil