2013-06-26 13 views
6

W jaki sposób można uruchomić skrypt R, zmuszając sesję do interakcji. Dokumenty w ?interative mówią, że kontrolują to --ess i --interactive, ale nie widzę żadnego efektu.Wymuszanie sesji Interactive R

Windows:

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

Mac:

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

jakieś przemyślenia?

EDYTOWANIE: Przypuszczam, że może zhackować podstawową przestrzeń nazw, która może działać dla niektórych rzeczy (jak install.packages). Ale to słaba wymówka rozwiązania ...

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

Dlaczego trzeba uruchomić skrypt, w którym 'interactive()' jest prawdziwe? –

+0

Jeśli potrzebujesz danych wejściowych od użytkownika, możesz użyć 'file (" stdin ")'. To jest inne niż użycie 'stdin()', które zostanie pominięte podczas uruchamiania skryptu. –

+0

@MatthewPlourde: Pojawi się kilka innych rzeczy, takich jak domyślne urządzenia graficzne, a co nie. –

Odpowiedz

4

który miał pochodzić z naszego ukochanego littler alternatywa Rscript, a ja potem dodał przełącznik:

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

Może okazać się, że R po wywołaniu, jak zawsze ustawia się na false.

+0

humm, ... więc jaki jest sens polecenia R, jeśli nie robią tego, co mówią? –

+0

Może zapytasz na r-devel? –