2010-05-08 14 views
71

Ho scritto uno script R che estrae alcuni dati da un database, esegue diverse operazioni su di esso e invia l'output a un nuovo database.Scheduling R Script

Vorrei che questo script venga eseguito ogni giorno in un momento specifico ma non riesco a trovare alcun modo per farlo in modo efficace.

Qualcuno può consigliare una risorsa che potrei esaminare per risolvere questo problema? Sto eseguendo questo script su una macchina Windows.

risposta

48

Supponendo lo script R è mytest.r, situato in D:\mydocuments\, è possibile creare un file batch tra cui il seguente comando:

C:\R\R-2.10.1\bin\Rcmd.exe BATCH D:\mydocuments\mytest.r 

poi aggiungerlo, come una nuova attività, di pianificazione di Windows, seduto là la condizioni di innesco

È inoltre possibile omettere il file batch. Impostare C:\R\R-2.10.1\bin\Rcmd.exe nel program/script casella di testo in task scheduler, e dare come Arguments il resto del comando iniziale: BATCH D:\mydocuments\mytest.r

Scheduling R Tasks via Windows Task Scheduler (Pubblicato il 11 febbraio 2015)

taskscheduleR: R package to schedule R scripts with the Windows task manager (Pubblicato il 17 marzo 2016)

+15

Usando 'Rscript' è preferibile' R BATCH'. Anche i sistemi che possono differenziare tra minuscolo e maiuscolo ottengono 'r'. –

+0

Grazie, non l'ho usato. Come ho visto, gli argomenti possono essere passati allo script e vi si può accedere usando commandArgs –

3

Ho impostato i miei compiti tramite il programma SCHTASKS. Per l'esecuzione di script all'avvio, si potrebbe scrivere qualcosa sulla falsariga di

SCHTASKS /Create /SC ONSTART /TN MyProgram /TR "R CMD BATCH --vanilla d:\path\to\script.R" 

Vedere this website per maggiori dettagli su SCHTASKS. Maggiori dettagli allo Microsoft's website.

65

In realtà in Windows non è nemmeno necessario creare prima un file batch per utilizzare lo Scheduler .

  • Aprire lo scheduler: Start -> Tutti i programmi -> Accessori -> Utilità di sistema -> Scheduler
  • Crea una nuova Task
  • nella scheda Azione, creare una nuova azione
  • scegli Start Program
  • cerca su Rscript.exe che dovrebbe essere posizionato ad es. qui:
    "C: \ Programmi \ R \ R-3.0.2 \ bin \ x64 \ Rscript.exe"
  • inserire il nome del file nei parametri campo
  • ingresso il percorso in cui lo script si trova nella Start campo
  • andare alle Trigger scheda
  • creare il trigger
  • scegliere l'attività dovrebbe essere eseguita ogni giorno, mese, ... ripetuto più volte, o cosa mai desiderato
+2

Sì, grazie! Questo è ciò che ha funzionato per me, non il precedente e non le varie altre risposte che fluttuano nel web. Vorrei solo aggiungere che assicurati che l'estensione del file sia '.R' e NOT' .r'. – esa606

+0

Cosa intendi esattamente con questo - cosa ti aspetti che succeda? Forse questo dovrebbe entrare in una domanda a parte (forse c'è già una risposta su SO). – petermeissner

0

Dopo aver seguito una qualsiasi combinazione di questi passaggi e si riceve l'errore "Argument Batch Ignored" dopo l'esecuzione di R.exe, provare questo, ha funzionato per me.

In Windows Task Scheduler:

Sostituire BATCH "C:\Users\desktop\yourscript.R" nel campo argomenti

con

CMD BATCH --vanilla --slave "C:\Users\desktop\yourscript.R"

+1

Questo avrebbe senso come commento alla risposta di Mark Byers (o forse una modifica a quella risposta), non penso che possa stare da solo. – Gregor