LoslegenKostenlos starten

Daten mit 3+ Eingaben mit pmap() simulieren

Was, wenn du über drei Listen iterieren musst? Gibt es ein map3()? Um über mehr als zwei Listen zu iterieren – ob drei, vier oder sogar 20 –, brauchst du pmap(). Allerdings verlangt pmap() eine etwas andere Übergabe der Listenargumente.

Um pmap() zu verwenden, musst du zuerst eine Masterliste aller Listen erstellen, über die wir iterieren wollen. Diese Masterliste ist die Eingabe für pmap(). Anstatt .x oder .y zu verwenden, nutzt du die Listennamen als Argumentnamen.

Du wirst noch einmal Daten simulieren, diesmal mit fünf Listen als Eingaben statt zwei. Mit pmap() hast du die volle Kontrolle über unseren simulierten Datensatz und kannst zwei unterschiedliche Mittelwerte und zwei unterschiedliche Standardabweichungen zusammen mit den verschiedenen Standorten verwenden.

Diese Übung ist Teil des Kurses

<Kurs>Grundlagen der funktionalen Programmierung mit purrr</Kurs>
Kurs ansehen

Übungsanweisungen

  • Erstelle eine benannte Liste, die die Listen sites, means, means2, sigma und sigma2 enthält.
  • Wende pmap() auf die Liste von Listen an, um eine Liste von Data Frames mit drei Spalten zu erzeugen; die erste Spalte ist sites.
    • Die zweite Spalte heißt a und wird mit rnorm() erzeugt, mit mean = means und sd = sigma.
    • Die dritte Spalte heißt b und wird mit rnorm() erzeugt, mit mean = means2 und sd = sigma2.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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
Code bearbeiten und ausführen