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
Instruções do exercício
- Crie uma lista nomeada contendo as listas
sites,means,means2,sigmaesigma2. - 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()commean = meansesd = sigma. - A terceira coluna é
b, que érnorm()commean = means2esd = sigma2.
- A segunda coluna é
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