Iteración con el paquete purrr
para automatizar el manejo de archivos
Importar múltiples archivos
map_df(.x = , .f = read_csv)
1. Genera un vector/lista con los nombres de archivos sobre los que te gustaría operar
Importar múltiples archivos
map_df(.x = , .f = read_csv)
2. Selecciona la función para leer los archivos
3. Chequea sus argumentos
4. Seleciona entre map()/map2()/pmap()
Valor de retorno: un dataframe
map_df(.x = , .f = read_csv)
5. Selecciona el sufijo de map en relación con el output esperado
purrr::map( ) Let’s practise
______( 1:3, typeof)
[[1]]
[1] "integer"
[[2]]
[1] "integer"
[[3]]
[1] "integer"
Which map() function would you use to obtain these return values?
______( mtcars, typeof)
______( 1:3, is.numeric)
[1] TRUE TRUE TRUE
______(1:3, typeof)
[1] “integer” “integer” “integer”
______(1:3, is.numeric)
[[1]]
[1] TRUE
[[2]]
[1] TRUE
[[3]]
[1] TRUE
A
B
C
1 map() 2 map_df() 3 map_chr()
Leer múltiples archivos demo #1
1. Generar un vector con los nombres de archivo sobre los cuales iterar
2. Selecciona una función para importar los archivos
3. Chequea el nro de argumentos que la función necesita
4. Seleccioná entre map()/map2()/pmap()
5. Seleccioná el sufijo de map_*() en relación a la salida esperada
Iterar usando una función por sus efectos laterales
guardar muchos archivos
obtener varios puntos
imprimir en pantalla un gran número de resultados
Familia de funciones purrr::walk()
walk(.l, .f, ...)
una lista de vectores
La longitud de .l determina el numero de argumentos con los que .f será llamada.
Funcion
Fórmula
Vector atómico.
Practiquemos
¿Cuál de estas funciones usarias con una función de la familia de walk()?
¿Podes explicar por qué elegiste map() o walk() para iterar entre estas funciones?
Generación de reportes con RMarkdown
Automatización de la generación de reportes
Plantilla.Rmd
yaml
chunk
Lista de parámetros
rep_azul.html
rep_verde.html
rep_rojo.html
rep_amarillo.html
Automatización de la generación de reportes
¡Generá diferentes reportes!
purrr::pwalk(rmarkdown::render,
input = "Template.Rmd"
output_files =
params = )
“rep_amarillo.html”
“rep_rojo.html”
Lista de parámetros
“rep_azul.html” ...
Automatización de la generación de reportes demo#2
Archivo RMarkdown -> agregar parámetros en el YAML (.Rmd) y en el código
YAML
CHUNK
Practiquemos
How would you modify this list for automatizing RMarkdown report generation?
Can you explain the changes?
1. Generar un vector con los nombres de archivo sobre los cuales iterar
2. Selecciona una función para importar los archivos
3. Chequea el nro de argumentos que la función necesita
4. Seleccioná entre map()/map2()/pmap()
5. Seleccioná el sufijo de map_*() en relación a la salida esperada
Muchas gracias