Domanda:
Esecuzione di uno script R riga per riga
Fabian
2011-07-27 13:24:09 UTC
view on stackexchange narkive permalink

Ho appena scoperto come eseguire uno script R dalla console R in Windows.

source("arrrFile.R")

Il problema è che questo comando viene eseguito "silenziosamente". Come posso eseguire il file command-by- comando come lo digiterei nella console?

Hai provato `source (" arrFile.R ", echo = TRUE)`?
(+1) @caracal, in qualche modo ha mancato quell'unica opzione :) non c'è bisogno di mettere `print` nel file sorgente, a meno che qualche output non sia interessante.
Due risposte:
#1
+16
user88
2011-07-27 16:01:43 UTC
view on stackexchange narkive permalink

Puoi usare il debugger integrato di R; deve essere attivato su una funzione, quindi è necessario un piccolo wrapper:

  sourceDebugging<-function (f) {#Function per iniettare il codice nella funzioneCode< () {} #Injection parse ( text = c ('{', readLines (f), '}')) - >body (theCode) #Triggering debug debug (theCode) # Lift-off theCode ()} sourceDebugging (<file con code>)  

Questo è abbastanza utile per il debug (ti dà la possibilità di ispezionare lo stato dopo ogni riga), tuttavia valuterà solo in un ambiente fresco di theCode invece di source .GlobalEnv ... questo significa ad esempio che le variabili create all'interno scompariranno a meno che non siano esplicitamente globalizzate.

L'opzione due è solo per emulare la scrittura dalla tastiera e premendo INVIO ... ma come ha sottolineato caracal, questo può essere ottenuto solo con source (<file con code>, echo = TRUE) .

(+1) è anche consigliabile scrivere i file sorgente come funzioni e quindi `debug ()` `browser ()` sono utili :)
anche vanilla, mostra come eseguire un comando riga per riga R-2.12 --vanilla
qualche metodo per passare anche i parametri?
Sembra che i numeri siano sfalsati di 1 a causa della definizione della funzione.C'è un modo intelligente per aggirare questo?
#2
+10
Dmitrij Celov
2011-07-27 14:28:36 UTC
view on stackexchange narkive permalink

Apri il file di script all'interno del tuo RGui e premi Ctrl + R per eseguire riga per riga (devi premere molte volte però;)). Tuttavia, consiglierei di utilizzare RStudio per lavorare comodamente con R. In questo caso, esegui la riga con Ctrl + Invio . Oppure puoi modificare il tuo script per print () (o cat () ) gli oggetti.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...