Korelasyonları hata ayıklama
ABD Sağlık Bakanlığı'nda çalışıyorsun. Ekibin, birden fazla gebelik (ikiz, üçüz vb.) ile gebelik sırasında daha fazla kilo alımı arasında bir korelasyon olup olmadığını araştırıyor. Korelasyonu hesapladın ama değerlerin başka bir analistin tahminlerinden önemli ölçüde farklı. O, verilerinde 99 pounddan fazla kilo alımı için kayıt bulunmadığını belirtti. Hesaplamayı tekrar çalıştırmaya karar verdin ve bu kez alınan kilonun maksimum değerini günlüğe kaydetmek istiyorsun.
Çalışma alanında, ls_df adlı bir veri çerçeveleri listesi var. ls_df'nin her bir öğesi, her eyalet için doğum verilerini içeriyor. Hesaplamayı paralel çalıştırmak için bir foreach döngüsü yazdın.
foreach ve doParallel senin için yüklendi.
Bu egzersiz, kursun bir parçasıdır
R'da Paralel Programlama
Egzersiz talimatları
- Dört çekirdekli bir küme oluştur.
- Kümeden gelen mesajların kaydedileceği
state_log.txtadlı bir dosya belirt. - Döngü gövdesinde,
dfveri çerçevesindekiweight_gain_poundssütununun maksimum değerini günlüğe yaz. - Yazdırma mesajlarını kontrol etmek için
state_log.txtdosyasını oku.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Create a cluster of four cores
cl <- ___(___,
# Specify a file to log print statements
___ = "___")
registerDoParallel(cl)
res <- foreach(df = ls_df) %dopar% {
print(paste(unique(df$state), ":",
# Calculate maximum of weight_gain_pounds in df
___(___)))
cor(df$plurality, df$weight_gain_pounds)
}
stopCluster(cl)
# Read log file to check print messages
read.delim("___", sep = ";")