ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează o listă cu nume care să conțină listele sites, means, means2, sigma și sigma2.
  • Aplică pmap() peste lista de liste pentru a crea o listă de cadre de date cu trei coloane; prima coloană este sites.
    • A doua coloană este a, generată cu rnorm() cu mean = means și sd = sigma.
    • A treia coloană este b, generată cu rnorm() cu mean = means2 și sd = sigma2.

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
Editează și rulează codul