ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Crea una lista con nombres que contenga las listas sites, means, means2, sigma y sigma2.
  • Aplica pmap() sobre la lista de listas para crear una lista de data frames con tres columnas; la primera columna es sites.
    • La segunda columna es a, que es rnorm() con mean = means y sd = sigma.
    • La tercera columna es b, que es rnorm() con mean = means2 y sd = sigma2.

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
Editar y ejecutar código