2010-05-08 28 views
71

He escrito una secuencia de comandos R que extrae algunos datos de una base de datos, realiza varias operaciones en ella y publica la salida en una nueva base de datos.Programar secuencia de comandos R

Me gustaría que este script se ejecute todos los días a una hora específica, pero no puedo encontrar ninguna manera de hacerlo de manera efectiva.

¿Alguien puede recomendar un recurso que pueda ver para resolver este problema? Estoy ejecutando este script en una máquina con Windows.

Respuesta

48

Suponiendo que la secuencia de comandos R es mytest.r, situada en D:\mydocuments\, puede crear un archivo por lotes que incluye el siguiente comando:

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

después añadirlo, como una nueva tarea, al programador de tareas de Windows, estableciendo allí la condiciones desencadenantes

También podría omitir el archivo por lotes. Establecer C:\R\R-2.10.1\bin\Rcmd.exe en el program/script cuadro de texto en el programador de tareas, y dar como Arguments el resto de la orden inicial: BATCH D:\mydocuments\mytest.r

Scheduling R Tasks via Windows Task Scheduler (Publicado el 11 de febrero, 2015)

taskscheduleR: R package to schedule R scripts with the Windows task manager (Publicado el 17 de marzo, 2016)

+15

Uso de 'Rscript' es preferible' R BATCH'. Los sistemas que pueden diferenciar entre mayúsculas y minúsculas obtienen 'r' también. –

+0

Gracias, no lo había usado. Como pude ver, los argumentos también se pueden pasar al script y se puede acceder usando commandArgs –

3

Configuré mis tareas a través del programa SCHTASKS. Para ejecutar secuencias de comandos en el arranque, podría escribir algo en la línea de

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

Ver this website para más detalles sobre SCHTASKS. Más detalles en Microsoft's website.

65

En realidad, en Windows ni siquiera tiene que crear primero un archivo por lotes para usar el Scheduler Scheduler.

  • Abra el planificador: Inicio -> Todos los programas -> Accesorios -> Herramientas del sistema -> Agenda
  • Crear una nuevo Grupo de
  • en la pestaña Acción, crear una nueva acción
  • elija Inicie el programa
  • navegue hasta Rscript.exe que se debe colocar, por ejemplo aquí:
    "C: \ Archivos de programa \ R \ R-3.0.2 \ bin \ x64 \ Rscript.exe"
  • introducir el nombre de su archivo en los parámetros campo
  • entrada de la ruta en la que la secuencia de comandos se encuentra en el Inicio en campo
  • ir a los disparadores pestaña
  • crear gatillo nuevo
  • elegir esa tarea debe hacerse cada día, mes, ... repetir varias veces, o qué siempre que desee
+2

¡Sí, gracias! Esto es lo que funcionó para mí, no lo anterior y no las otras respuestas que flotan en la web. Solo agregaría que asegúrese de que la extensión del archivo sea '.R' y NO' .r'. – esa606

+0

¿Qué quiere decir exactamente con eso? ¿Qué esperaría que sucediera? Tal vez esto debería entrar en una cuestión propia (tal vez ya hay una respuesta en SO). – petermeissner

0

Después de seguir cualquier combinación de estos pasos y recibe el error "Argument Batch Ignored" después de que se ejecuta R.exe, intente esto, funcionó para mí.

En el programador de tareas de Windows:

Reemplazar BATCH "C:\Users\desktop\yourscript.R" en el campo de argumentos

con

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

+1

Esto tendría sentido como un comentario sobre la respuesta de Mark Byers (o tal vez una edición de esa respuesta), no creo que pueda ser independiente. – Gregor

Cuestiones relacionadas