Simularea datelor cu 3+ intrări folosind pmap()
Ce faci dacă trebuie să iterezi peste trei liste? Există un map3()? Pentru a itera peste mai mult de două liste – fie că sunt trei, patru sau chiar 20 – trebuie să folosești pmap(). Totuși, pmap() necesită să furnizezi argumentele de tip listă puțin diferit.
Pentru a folosi pmap(), trebuie mai întâi să creezi o listă principală care să conțină toate listele peste care vrei să iterezi. Această listă principală este intrarea pentru pmap(). În loc de .x sau .y, folosește numele listelor drept nume de argumente.
Vei simula date încă o dată, folosind cinci liste ca intrări, în loc de două. Folosind pmap(), ai control complet asupra setului de date simulat și vei putea utiliza două medii diferite și două abateri standard diferite, alături de diferitele situri.
Acest exercițiu face parte din cursul
Bazele programării funcționale cu purrr
Instrucțiuni pentru exercițiu
- Creează o listă cu nume care să conțină listele
sites,means,means2,sigmașisigma2. - Aplică
pmap()peste lista de liste pentru a crea o listă de cadre de date cu trei coloane; prima coloană estesites.- A doua coloană este
a, generată curnorm()cumean = meansșisd = sigma. - A treia coloană este
b, generată curnorm()cumean = means2șisd = sigma2.
- A doua coloană este
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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