pmap() ile 3+ girdili veri simülasyonu
Peki ya üç liste üzerinde yineleme yapman gerekirse? Bir map3() var mı? İki listeden fazlası — üç, dört, hatta 20 — üzerinde yineleme yapmak için pmap() kullanman gerekir. Ancak pmap() liste argümanlarını biraz farklı şekilde sağlamanı ister.
pmap() kullanmak için önce üzerinde yineleme yapmak istediğimiz tüm listelerden oluşan bir ana liste oluşturman gerekir. Bu ana liste, pmap() için girdidir. .x veya .y yerine, argüman adları olarak liste adlarını kullan.
Şimdi veriyi bir kez daha simüle edeceksin; bu kez iki yerine beş listeyi girdi olarak kullanacaksın. pmap() kullanmak sana simüle edilen veri kümesi üzerinde tam kontrol sağlar ve farklı konumların yanı sıra iki farklı ortalama ve iki farklı standart sapmayı kullanmana olanak tanır.
Bu egzersiz, kursun bir parçasıdır
purrr ile Fonksiyonel Programlamanın Temelleri
Egzersiz talimatları
sites,means,means2,sigmavesigma2listelerini içeren, adlandırılmış bir liste oluştur.- Listelerden oluşan bu liste üzerinde
pmap()kullanarak üç sütunlu veri çerçevelerinden oluşan bir liste oluştur; ilk sütunsitesolsun.- İkinci sütun
aolsun;mean = meansvesd = sigmailernorm()kullan. - Üçüncü sütun
bolsun;mean = means2vesd = sigma2ilernorm()kullan.
- İkinci sütun
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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