Modelleme hatalarını yakala
Doğumda yaşam beklentisi, nüfus sağlığının önemli bir göstergesidir.
Bir halk sağlığı araştırmacısı danışmanı olarak çalışıyorsun. Müşterin, sağlık hizmetlerine harcanan her dolar için yaşam beklentisindeki artışı öğrenmek istiyor. 2001–2021 arasında tüm ülkeler için yaşam beklentisi (yıl olarak) ve kişi başına sağlık harcaması verilerini derledin. Danışman istatistikçi, her ülkenin verisine regresyon modelleri uydurmak için kod yazdı. Ancak, verilerdeki eksik değerler model kurulumunda hatalara neden oluyor.
Çalışma alanında, her bir elemanı belli bir ülkenin verisi olan ls_df adlı bir veri çerçeveleri listen var. parLapply() ile paralelleştirip hataları yakalamak için tryCatch() kullanmayı planlıyorsun. parallel paketi senin için yüklendi.
Bu egzersiz, kursun bir parçasıdır
R'da Paralel Programlama
Egzersiz talimatları
errorargümanına bir fonksiyon ver. Bu fonksiyon bir argüman,e, almalı vepaste()kullanarak"Error!"ifadesinie'nin önüne eklemeli.fit_lm()fonksiyonunu düzenleyipmodeldeğişkeninin hata iletisini içeren bir karakter dizisi olup olmadığını kontrol et.- Altı çekirdekli bir küme oluştur.
fit_lm()fonksiyonunuparLapply()kullanarakls_dflistesine paralel uygula.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
fit_lm <- function (df) {
model <- tryCatch(lm(life_expectancy ~ health_exp_per_capita, data = df),
# Supply a function that pastes "Error!" and one argument, e
error = ___)
# If model is character (error) return model else return model coefficient
if (___) return(model)
else return(coef(model)[2])
}
# Make a cluster of six cores
cluster <- ___(___)
# Apply fit_lm in parallel to ls_df using cluster
ls_mod <- parLapply(___, ___, ___)
stopCluster(cluster)
print(paste(sum(sapply(ls_mod, is.numeric)), "models fit and", sum(sapply(ls_mod, is.character)), "errors caught!"))