Se eseguo lo script R sotto la riga di comando (in realtà eseguo tale da chiamare in VBA), come posso inviare eventuali messaggi di errore/avviso a un txt file?Errore di output/log di avviso (file txt) quando si esegue lo script R sotto la riga di comando
risposta
È possibile utilizzare sink()
per deviare messaggi e avvisi su un file. Il trucco è quello di impostare l'argomento type="message"
:
Ecco un esempio tratto dal aiuto per ?sink
:
setwd(tempdir())
## capture messages and errors to a file.
zz <- file("all.Rout", open="wt")
sink(zz, type="message")
try(log("a"))
## reset message sink and close the file connection
sink(type="message")
close(zz)
## Display the log file
readLines("all.Rout")
[1] "Error in log(\"a\") : Non-numeric argument to mathematical function"
Grandi cose, grazie! – Joyce
Tuttavia, come posso chiudere la connessione con il file di registro? Ho provato sink(), ma quando voglio eliminare il file di registro, non posso cancellarlo, poiché sembra che ci sia ancora una connessione. Solo dopo aver chiuso la mia R, posso cancellarlo. Come dovrei chiudere la connessione? – Joyce
Questo perché nella risposta originale, il sink non è stato terminato con 'type =" message "' e la connessione non è stata chiusa. (Risolto nella risposta aggiornata) – Jthorpe
Per chiudere la connessione con il file di log è necessario utilizzare sink(type="message")
invece di sink()
e poi close(zz)
.
(non ho abbastanza reputazione per utilizzare la funzione Add comment)
- 1. Determinare la directory di lavoro della riga di comando quando si esegue lo script del nodo bin
- 2. Errore durante l'utilizzo di R attraverso la riga di comando
- 3. errore di pacchetto quando si esegue il codice r sulla linea di comando
- 4. in esecuzione lo script Groovy dalla riga di comando
- 5. Riga di comando R passando un nome file per lo script in argomenti (Windows)
- 6. "Errore durante l'esecuzione Grails CLI: null" quando si esegue graal riga di comando 3.0
- 7. esegue lo script R da .bat (file batch)
- 8. messaggio di avviso Numero riga R
- 9. Come evitare il messaggio di avviso "sono lo stesso file" quando si usa cp in Linux?
- 10. Numeri di riga dello script R in caso di errore?
- 11. Analizzare gli argomenti della riga di comando negli script R
- 12. Come si esce da VIM quando si esegue un commit mercurial sulla riga di comando?
- 13. Messaggio di errore quando si esegue la funzione 'rinomina' semplice in R
- 14. sql: Errore 997 quando si specifica password nella riga di comando
- 15. funzione di R per analizzare argomenti della riga di comando
- 16. Esegui lo script PHP codificato con ZendGuard tramite la riga di comando
- 17. Come si esegue l'iterazione su tutte le righe di file passati sulla riga di comando?
- 18. mantenere la finestra della riga di comando aperta quando si esegue l'operazione pianificata eseguendo il file batch
- 19. Riga di comando SQLPLUS con file batch di Windows
- 20. Come catturare il PID di un processo quando lo si lancia dalla riga di comando?
- 21. come aggiungere i parametri della riga di comando quando si esegue il codice java in Eclipse?
- 22. ubuntu esegue il file di testo come comando
- 23. Unix esegue la riga di comando con. (punto) vs. senza
- 24. Punto di ingresso Errore durante l'esecuzione dello script PHP dalla riga di comando
- 25. Come si esegue uno script .lua?
- 26. Divisione di un file txt di grandi dimensioni in 200 file txt più piccoli in un'espressione regolare utilizzando lo script di shell in BASH
- 27. Evitare interruzioni di riga quando si utilizza il file esterno
- 28. SQLCMD, variabili e script della riga di comando: setvar
- 29. La riga di comando si compila usando cl.exe?
- 30. Come si esegue uno script di shell come root (sudo)?
Come su yourprogram.exe> anoutputfile.txt? Anche se questo cattura tutto. Su * nix è possibile dirigere stderr, non sono sicuro di Win *. Vedi http://stackoverflow.com/questions/1109017/how-do-you-print-to-stderr-in-r – Pete855217
È possibile utilizzare 'sink()' – Andrie
Grazie. Ho provato a cercare sul web come usare sink in R ma un po 'confuso su come emettere un messaggio di errore/avviso nel mio caso. Ti dispiacerebbe darmi un rapido esempio su come farlo? Grazie ancora. – Joyce