ComeçarComece de graça

Simulando dados com 3+ entradas usando pmap()

E se você precisar iterar sobre três listas? Existe um map3()? Para iterar sobre mais de duas listas — seja três, quatro ou até 20 — você vai precisar usar pmap(). No entanto, pmap() exige que passemos os argumentos de lista de um jeito um pouco diferente.

Para usar pmap(), primeiro você precisa criar uma lista mestre com todas as listas sobre as quais queremos iterar. A lista mestre é a entrada de pmap(). Em vez de usar .x ou .y, use os nomes das listas como nomes dos argumentos.

Você vai simular dados mais uma vez, usando cinco listas como entradas, em vez de duas. Usar pmap() dá controle total sobre o conjunto de dados simulado e permite usar duas médias e dois desvios padrão diferentes juntamente com os diferentes sites.

Este exercício faz parte do curso

Fundamentos de Programação Funcional com purrr

Ver curso

Instruções do exercício

  • Crie uma lista nomeada contendo as listas sites, means, means2, sigma e sigma2.
  • Faça pmap() sobre a lista de listas para criar uma lista de data frames com três colunas; a primeira coluna é sites.
    • A segunda coluna é a, que é rnorm() com mean = means e sd = sigma.
    • A terceira coluna é b, que é rnorm() com mean = means2 e sd = sigma2.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código