Zacznij terazZacznij za darmo

Symulowanie danych z 3+ wejściami za pomocą pmap()

Co zrobić, gdy trzeba iterować po trzech listach? Czy istnieje map3()? Do iterowania po więcej niż dwóch listach – czy to po trzech, czterech, czy nawet dwudziestu – należy użyć pmap(). Funkcja ta wymaga jednak nieco innego sposobu przekazywania argumentów listowych.

Aby skorzystać z pmap(), najpierw utwórz listę główną zawierającą wszystkie listy, po których chcesz iterować. Ta lista główna jest wejściem dla pmap(). Zamiast .x i .y używaj nazw list jako nazw argumentów.

Zasymulujesz dane jeszcze raz, tym razem używając pięciu list jako wejść zamiast dwóch. Dzięki pmap() zyskujesz pełną kontrolę nad symulowanym zbiorem danych – możesz użyć dwóch różnych średnich i dwóch różnych odchyleń standardowych, a także różnych lokalizacji.

To ćwiczenie jest częścią kursu

Podstawy programowania funkcyjnego z purrr

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz nazwaną listę zawierającą listy sites, means, means2, sigma i sigma2.
  • Zastosuj pmap() na liście list, aby utworzyć listę ramek danych z trzema kolumnami; pierwsza kolumna to sites.
    • Druga kolumna to a – wynik rnorm() z mean = means i sd = sigma.
    • Trzecia kolumna to b – wynik rnorm() z mean = means2 i sd = sigma2.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
Edytuj i uruchom kod