IniziaInizia gratis

Simulare dati con 3+ input usando pmap()

E se dovessi iterare su tre liste? Esiste un map3()? Per iterare su più di due liste, che siano tre, quattro o persino 20, devi usare pmap(). Tuttavia, pmap() richiede di fornire gli argomenti come liste in modo leggermente diverso.

Per usare pmap(), devi prima creare una master list con tutte le liste su cui vuoi iterare. La master list è l'input di pmap(). Invece di usare .x o .y, usa i nomi delle liste come nomi degli argomenti.

Simulerai i dati un’ultima volta, usando cinque liste come input invece di due. Usare pmap() ti dà il pieno controllo sul dataset simulato e ti permette di usare due medie e due deviazioni standard diverse, insieme ai vari siti.

Questo esercizio fa parte del corso

Le basi della programmazione funzionale con purrr

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una lista nominata che contenga le liste sites, means, means2, sigma e sigma2.
  • Applica pmap() alla lista di liste per creare una lista di data frame con tre colonne; la prima colonna è sites.
    • La seconda colonna è a, che è rnorm() con mean = means e sd = sigma.
    • La terza colonna è b, che è rnorm() con mean = means2 e sd = sigma2.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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
Modifica ed esegui il codice