2013-06-26 19 views
6

Come si esegue uno script R per forzare la sessione in modo interattivo. I documenti in ?interative dicono che --ess e --interactive controllano questo, ma non vedo alcun effetto.Forza sessione R interattiva

di 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 

Qualche idea?

MODIFICA: Suppongo che possa hackerare lo spazio dei nomi di base che potrebbe funzionare per alcune cose (come install.packages). Ma questo è un povero scusa per una soluzione ...

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

Perché è necessario eseguire uno script in cui 'interactive()' è vero? –

+0

Se è necessario l'input dell'utente, è possibile usare 'file (" stdin ")'. Questo è diverso dall'uso di 'stdin()', che verrà saltato durante l'esecuzione di uno script. –

+0

@MatthewPlourde: si tratta di altre cose come i dispositivi grafici predefiniti e cosa no. –

risposta

4

che era venuto su con la nostra amata littler alternativa al Rscript, e ho poi aggiunto un interruttore:

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

Può darsi che R quando invocato come lo si imposta sempre su false.

+0

humm, ... allora qual è il punto del comando R args se non fanno quello che dicono? –

+0

Forse chiedere su r-devel? –

Problemi correlati