1 Introduccion: ¿POR QUÉ AUTOMATIZAR?

El aumento de las tendencias de mercadeo y productividad, plantea la automatización como una estrategia de enfrentamiento a este mundo cambiante.

La palabra automatización proviene de la palabra griega “automatos”, que significa “con movimiento propio” o actuación propia. La automatización se puede definir como la tecnología utilizada para realizar procesos o procedimientos sin ayuda o con la menor ayuda de las personas.

La automatización de un proceso reduce ampliamente el cansancio mental permitiendo al ser humano el desarrollo del mismo permitiendo así obtener la optimización de costes, al automatizar procesos se tiene mas tiempo para otras tareas; se mejora la calidad ya que se eliminan errores manuales; y se aumenta la productividad, al reducir el tiempo total de producción.

En una producción completamente automatizada, las máquinas cumplen todas las etapas mientras que las personas mantienen los programas electrónicos, supervisan el flujo de producción e intervienen en casos de fallos en el sistema.

2 Beneficios

En R podemos determinar los siguientes beneficios:

  • 1-Porque ayuda a simplificar el tiempo de trabajo en el analisis de datos y reportes. Si puede reducir el tiempo empleado en el procesamiento manual de datos y enfocar más el análisis y la información, eso solo puede ser algo bueno.

  • 2-Permite a la persona o al equipo enfocarse en los problemas dificiles. Expande tus opciones de visualización de datos. El uso de un software de código abierto como R permitirá dibujar en una amplia gama de herramientas y bibliotecas de gráficos que no están disponibles en el software propietario. Por ejemplo, los informes HTML con el paquete rmarkdown pueden incluir gráficos interactivos, mapas y tablas que utilizan las últimas tecnologías web, más sobre esto más adelante.

  • 3-Provee un analisis continuo y reproducible tambien un analisis repitivo.

  • 4-Reduce errores; cuando su informe se basa en la entrada de datos manual y en una fórmula con referencias de celda codificadas de forma rígida, un número tipográfico o fuera de lugar puede llevar a resultados que están fuera de lugar. Automatizar el proceso con un script eliminará completamente la posibilidad de error humano.

Ahora bien es importante automatizar procesos en R pero antes debemos empezar por responder estas preguntas:

  • 1-Cuando es posible automatizar?

Casi siempre es posible automatizar. El cuando lo establece la automatizacion de pruebas como una inversion.

  • 2-Por donde empiezo a automatizar?

Para orientarse en este universo se recomienda empezar identificando tareas de prueba que sean aburridas, repetitivas y sin mucho valor aparente, pero que podrían ser determinantes en momentos muy puntuales o que siempre generan condiciones de fallo en sus sistemas actuales. Es solo un pequeño primer paso pero alivia el escozor.

Luego toca entrar en matices más elaborados, como frecuencia de cambio o criticidades desde negocio. Nuestro foco suele ser asegurar que no se retrocede en el producto, es decir, automatizar las pruebas de regresión funcional.

3 Ejemplo de Automatizacion de un informe Rmarkdown con Windows Task Scheduler

En ocasiones generamos un informe que hay que actualizar periódicamente. Supongamos que en el código hemos definido las fechas de un periodo de consulta de manera dinámica y cada primero de mes debemos de publicarlo. La manera de automatizarlo sería programando una tarea que se ejecute cada tiempo determinado, en este caso mensualmente. Este ejemplo aborda esta cuestión, haciendo uso del Programador de tareas de Windows:

NOTA: Para que se lleve a cabo correctamente la conversión a pdf es necesario tener instalado tanto pandoc como LaTeX (o MiKTeX).

3.0.1 1. Ir a Programador de tareas de Windows.

3.0.2 2. Crear tarea básica.

3.0.3 3. Asignar nombre a la tarea.

3.0.4 4. Fijar periodo.

3.0.5 5. Definir la acción.

3.0.6 6. Especificar programa/script y argumentos.

  • Programa o script: damos la ruta al archivo ejecutable de R en nuestro ordenador (es decir, el programa encargado de ejecutar nuestro RMarkdown).
  • Argumento: CMD BATCH “ruta del script de R que hará que el .Rmd se ejecute”. En nuestro ejemplo el archivo “run.R”

- Especifica la ruta al directorio en que se encuentra el archivo .Rmd (el que genera el RMarkdown).
- Llamada a la librería rmarkdown.
- En la función render pasamos dos argumentos: el primero especifica el nombre del archivo .Rmd y el segundo el formato de salida de nuestro informe, en este caso “pdf_document” (también disponible la opción “html_document”).

3.0.7 7. Finalizar definición de tarea.

  • Al iniciarse la tarea programada, podemos comprobar en tiempo real en el Administrador de tareas que R está ejecutando.

  • Como resultado de la ejecución, se generan en el mismo directorio del archivo .Rmd dos archivos: un log y el pdf resultante.

4 Ejemplo de Automatizacion de un informe Rmarkdown con cambio de parametros

Supongamos que necesitamos crear varios reportes iguales, pero queremos que cada uno cambie de acuerdo a algunos parametros. Por ejemplo, queremos hacer reportes por provincia. Los reportes deben ser iguales entre si, pero con datos respectivos a una provincia especifica. Entonces se genera un reporte declarando en el YAML el parametro de provincia.

Luego se hace un script en R de un loop con “for” para que haga un reporte (html o pdf) con cada una de las provincias

5 Ejemplo de automatizacion de reportes

Vamos a programar un proceso que:

iterar sobre cada hoja en el archivo excel saque solo la sección de la tabla de datos (comenzando en la fila 5) Añadir una columna de año rellenada por el nombre de la hoja. Combine todas las tablas separadas en un solo marco de datos reordenar las columnas a nuestras especificaciones deseadas La reproducibilidad de este código proviene del hecho de que es independiente del número de hojas en nuestro archivo de Excel. Eso significa que cada vez que obtengamos un archivo actualizado con una nueva pestaña de datos, solo apuntamos el mismo código a este archivo y obtendremos un nuevo conjunto de datos que incluye estos nuevos datos. Cualquier cálculo futuro que obtengamos de los datos, como los últimos cambios de período a período, se derivará automáticamente de los últimos datos disponibles que acabamos de recibir.

Parte de nuestro análisis incluirá el cálculo de estadísticas de resumen continentales, pero actualmente no tenemos una columna de continente en nuestro conjunto de datos. Agregar uno en Excel nos requeriría hacer nuestra propia tabla de búsqueda con un continente correspondiente para cada país único en el conjunto de datos y luego usar una función VLOOKUP. En R podemos hacer fácilmente esta parte del flujo de trabajo automatizado utilizando el paquete countrycode para traducir de un esquema de codificación geográfica a otro; en nuestro caso, obtener un nombre de continente basado en un nombre de país, así: