Simular datos con 3+ entradas usando pmap()
¿Y si necesitas iterar sobre tres listas? ¿Existe map3()? Para iterar sobre más de dos listas, ya sean tres, cuatro o incluso 20, necesitarás usar pmap(). Sin embargo, pmap() requiere que proporcionemos los argumentos de lista de forma un poco diferente.
Para usar pmap(), primero necesitas crear una lista maestra con todas las listas sobre las que queremos iterar. La lista maestra es la entrada de pmap(). En lugar de usar .x o .y, utiliza los nombres de las listas como nombres de argumentos.
Vas a simular datos una vez más, usando cinco listas como entradas, en lugar de dos. Usar pmap() te da control total sobre nuestro conjunto de datos simulado y te permitirá usar dos medias y dos desviaciones estándar diferentes junto con los distintos sitios.
Este ejercicio forma parte del curso
Fundamentos de la programación funcional con purrr
Instrucciones del ejercicio
- Crea una lista con nombres que contenga las listas
sites,means,means2,sigmaysigma2. - Aplica
pmap()sobre la lista de listas para crear una lista de data frames con tres columnas; la primera columna essites.- La segunda columna es
a, que esrnorm()conmean = meansysd = sigma. - La tercera columna es
b, que esrnorm()conmean = means2ysd = sigma2.
- La segunda columna es
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create a master list, a list of lists
pmapinputs <- list(sites = ___, means = ___, sigma = ___,
means2 = ___, sigma2 = ___)
# Map over the master list
list_of_files_pmap <- pmap(___,
function(___, ___, ___, ___, ___)
data.frame(sites = ___,
a = rnorm(mean = ___, n = 200, sd = ___),
b = rnorm(mean = ___, n = 200, sd = ___)))
list_of_files_pmap