Questa potrebbe essere una domanda molto semplice, ma non ho ancora trovato una risposta convincente. Quando eseguo uno script R all'interno dell'ambiente R, posso fare sia source(foo.R)
o system("Rscript foo.R")
. C'è qualche differenza tra i due approcci e, in caso affermativo, come si confrontano i due approcci?Rscript vs. source: quali sono le differenze chiave?
risposta
Sono fondamentalmente diversi nei loro effetti.
source("foo.R")
dice il vostro attuale processo di R per prendere il suo input da"foo.R"
.system("Rscript foo.R")
utilizza un comando del sistema operativo per avviare un processo R separato, all'interno del quale vengono valutati i contenuti di"foo.R"
.
La chiamata Rscript
non influenzerà direttamente la sessione corrente R a tutti, tranne che sarà di default stampare l'output di quell'altra sessione di R sulla console corrente. (È possibile disabilitarlo nella chiamata system()
impostando show.output.on.console=FALSE
).
Penso che source(foo.R)
includa il codice sorgente di tale file (foo.R
) nell'ambiente corrente. Se si definisce una variabile all'interno di foo.R
, diciamo x <- 5
, e nel progetto corrente si definisce in anticipo x <- 6
, x
diventa 5
.
system("Rscript foo.R")
esegue il programma Rscript
con l'argomento foo.R
, quindi l'ambiente corrente non è interessato.
In risposta al commento di @ Ramnath: sys.source("foo")
non corrisponde a Rscript foo
. Ad esempio, è possibile effettuare le seguenti operazioni con sys.source
:
e <- new.env()
sys.source("foo", e) # foo creates a bunch of objects in environment e
z <- with(e, {
# do stuff with e....
})
rm(e)
Si potrebbe fare questo se si sta creando diversi oggetti intermedi, che poi fare cose su e restituire un risultato finale. Non vuoi mantenere gli oggetti intermedi, quindi metterli nel loro ambiente temporaneo è un modo semplice per rimuoverli in una volta sola.
- 1. @synthesize vs @dynamic, quali sono le differenze?
- 2. Quali sono le differenze chiave tra JavaScript e ActionScript 3?
- 3. Quali sono le differenze chiave tra Meteor, Ember.js e Backbone.js?
- 4. Passaggio da WPF a Silverlight: quali sono le differenze chiave?
- 5. Quali sono le differenze tra Boo vs Nemerle?
- 6. newid() vs newsequentialid() Quali sono le differenze/pro e contro?
- 7. Laravel Queue, Beanstalkd vs Database, quali sono le differenze?
- 8. Quali sono le differenze tra l'uso di Nightwatch.js vs Goniometro
- 9. Quali sono le differenze tra $ {} e # {}?
- 10. Quali sono/sono le differenze tra MSBuild e TFSBuild
- 11. Quali sono le differenze tra NSURLConnection e ASI-HTTP-Request?
- 12. Quali sono le differenze fondamentali tra ASP.net e PHP?
- 13. Quali sono/sono le principali differenze tra Flink e Storm?
- 14. MPI vs GPU vs Hadoop, quali sono le principali differenze tra questi tre parallelismi?
- 15. Quali sono le differenze tra slice e partizioni di RDD?
- 16. Quali sono le differenze chiave tra le API Repa 2 e 3?
- 17. Quali sono le differenze tra le capacità di calcolo CUDA?
- 18. Quali sono le differenze tra le query SQL?
- 19. Quali sono le differenze tra le classi Helper e Utility?
- 20. Quali sono le differenze tra un compilatore e un linker?
- 21. Go-Scala-Go! Quali sono le principali differenze?
- 22. Quali sono le differenze tra JSP e Facelets?
- 23. Quali sono le differenze tra un'istruzione GOTO e GOSUB BASIC
- 24. Quali sono le differenze tra MPI e OpenMP?
- 25. Quali sono le differenze tra RedrawWindow e UpdateWindow in Win32?
- 26. Quali sono le differenze tra evento e segnale in Qt
- 27. quali sono le differenze tra Membership, SimpleMembership, Identità ASP.NET?
- 28. Quali sono le differenze effettive tra child_process.fork e cluster.fork?
- 29. Quali sono le differenze tra flex-grow e width?
- 30. Quali sono le principali differenze tra Babel e TypeScript
otterrebbe gli stessi risultati di 'sys.source'? Capisco che usare 'Rscript' sarebbe molto utile quando si esegue un set indipendente di script. – Ramnath
'sys.source()' è un cugino stretto di 'source()' --- la pagina di aiuto 'source' chiama' sys.source' una "versione semplificata". Mi sembra probabile che 'sys.source' sia stato progettato principalmente per il suo uso da' library() '. –
grazie. tutto ha senso ora. – Ramnath