2013-06-26 7 views
6

Wie wird ein R-Skript ausgeführt, das die Sitzung interaktiv macht? Die Dokumentation in ?interative sagen, dass --ess und --interactive dies steuern, aber ich sehe keinen Effekt.Interaktive R-Sitzung erzwingen

Fenster:

C:\Program Files\R\R-3.0.1\bin>R -e "interactive()" --ess -s 
[1] FALSE 

Mac:

$ R -e "interactive()" --interactive -s 
[1] FALSE 

Irgendwelche Gedanken?

EDIT: Ich nehme an, kann auf die Basis Namespace hacken, die für einige Dinge (wie install.packages) funktionieren kann. Aber das ist eine schlechte Ausrede für eine Lösung ...

$ R -e "unlockBinding('interactive',as.environment('package:base'));assign('interactive',function() TRUE,envir=as.environment('package:base'));base::interactive()" --interactive -s 
[1] TRUE 
+2

Warum müssen Sie ein Skript ausführen, in dem 'interactive()' wahr ist? –

+0

Wenn Sie Benutzereingaben benötigen, können Sie 'file (" stdin ")' verwenden. Dies unterscheidet sich von der Verwendung von 'stdin()', das beim Ausführen eines Skripts übersprungen wird. –

+0

@MatthewPlourde: Es kommt für einige andere Dinge wie Standard-Grafikgeräte und was nicht. –

Antwort

4

, die mit unserer geliebten littler Alternative zu Rscript gekommen waren, und ich fügte dann einen Toggle:

[email protected]:~$ r -p -e 'interactive()' 
[1] FALSE 
[email protected]:~$ r -i -p -e 'interactive()' 
[1] TRUE 
[email protected]:~$ 

Es kann gut sein, dass R wenn aufgerufen, wie Sie es immer auf false setzen.

+0

humm, ... was ist der Sinn des Befehls R, wenn sie nicht tun, was sie sagen? –

+0

Vielleicht fragen Sie auf R-devel? –