शुरू करेंमुफ़्त में शुरू करें

pmap() के साथ 3+ इनपुट्स का सिम्युलेशन

अगर आपको तीन lists पर iterate करना हो तो? क्या map3() है? दो से अधिक lists पर iterate करने के लिए — चाहे वह तीन हों, चार हों, या 20 — आपको pmap() का इस्तेमाल करना होगा। हालाँकि, pmap() में हमें list arguments थोड़े अलग तरीके से देने पड़ते हैं.

pmap() इस्तेमाल करने के लिए, पहले आपको उन सभी lists की एक master list बनानी होगी जिन पर हम iterate करना चाहते हैं। यही master list pmap() का इनपुट होती है। .x या .y के बजाय, list के नामों को ही argument names के रूप में इस्तेमाल करें.

आप एक बार और डेटा simulate करने जा रहे हैं, इस बार दो की बजाय पाँच lists को इनपुट के रूप में लेकर। pmap() आपको simulated डेटासेट पर पूरा नियंत्रण देता है, और इससे आप अलग-अलग sites के साथ दो अलग means और दो अलग standard deviations भी इस्तेमाल कर पाएँगे।

यह अभ्यास पाठ्यक्रम का हिस्सा है

purrr के साथ Functional Programming की बुनियाद

पाठ्यक्रम देखें

अभ्यास निर्देश

  • एक named list बनाएँ जिसमें sites, means, means2, sigma, और sigma2 lists हों.
  • lists की इस list पर pmap() चलाएँ ताकि तीन कॉलम वाले data frames की list बने; पहला कॉलम sites हो.
    • दूसरा कॉलम a हो, जो rnorm() से बने जिसमें mean = means और sd = sigma हो.
    • तीसरा कॉलम b हो, जो rnorm() से बने जिसमें mean = means2 और sd = sigma2 हो.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# 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
कोड संपादित करें और चलाएँ