2013-08-16 8 views
5

Sto scrivendo uno script R in Rstudio, e mi piacerebbe un modo per ottenere il nome del file il codice è scritto Il motivo per cui voglio farlo è che voglio un pezzo di codice che posso incollare in fondo a tutti i miei script in modo che i miei risultati vengano automaticamente inviati via email usando il pacchetto sendmailR.Come ottenere il nome del file dello script R attualmente in esecuzione (per una facile e-mail automatica dei risultati)

Mi piacerebbe che il mio nome di allegato avesse la struttura nomefile_date dove nomefile è il nome del file che si sta eseguendo e la data è l'ora dell'esecuzione. C'è un modo per farlo, o dovrò digitare il nome del file a mano ogni volta che eseguo un nuovo script.

Qui è stata posta una domanda simile, ma poiché l'utilizzo era diverso, la soluzione alternativa non ha mai fornito una risposta. Io in realtà non ho bisogno la posizione, appena il nome del file e credo che questo è ciò che dovrebbe rendere più fattibile (ma forse non)

Find location of current .R file

Rscript: Determine path of the executing script (chiede in sostanza la stessa domanda, ma vuole l'intero percorso, non risposta accettata)

+0

Come stai eseguendo lo script? Usando 'Rscript?' Usa 'run all' in' RStudio'? – mnel

+1

Non è diverso dalla seconda domanda a cui ti sei collegato. Una volta ottenuto il percorso completo, ottenere il nome del file richiede solo un'espressione regolare. – joran

+0

grazie, quella domanda non ha avuto una risposta accettata, quindi ho solo pensato che non fosse stata data risposta. È davvero importante accettare le risposte, specialmente quando queste sono tante risposte non correlate fornite su quel thread. – MHH

risposta

1

Un'altra soluzione potrebbe essere quella di fonte vostri script da uno script maestro,

script <- "mycode.R" 
source(script) 
... 
doOtherThings(script) 

e si poteva scorrere tutti gli script che avete, inviare e-mail su di loro, a prescindere.

0

Non so come sia possibile che R assegni il nome dello script. Ma si potrebbe includere nella parte superiore dello script - in questo modo:

Script.Name<-c("current name") 

Poi utilizzando lo Sys.time() e pasta() comandi si potrebbe fare l'oggetto che si desidera:

Final.Name<-paste(Script.Name, Sys.time(), sep="_") 

Se si desidera solo la data dell'esecuzione, utilizzare Sys.Date() anziché Sys.time().

Problemi correlati