Debugowanie korelacji
Pracujesz w Departamencie Zdrowia USA. Twój zespół bada, czy ciąże mnożne (bliźniacze, trojacze itp.) są skorelowane z większym przyrostem masy ciała w czasie ciąży. Obliczyłeś korelację, ale twoje wartości znacznie różnią się od szacunków innej analityczki. Zwróciła ona uwagę, że twoje dane nie rejestrują wartości przyrostu masy ciała przekraczających 99 funtów. Postanowiłeś ponownie przeprowadzić obliczenia i tym razem chcesz zalogować maksymalną wartość przyrostu masy ciała.
W swoim środowisku masz listę ramek danych ls_df. Każdy element ls_df zawiera dane dotyczące urodzeń dla poszczególnych stanów. Napisałeś pętlę foreach, aby uruchomić obliczenia równolegle.
Biblioteki foreach i doParallel zostały już wczytane.
To ćwiczenie jest częścią kursu
Programowanie równoległe w R
Instrukcje do ćwiczenia
- Utwórz klaster złożony z czterech rdzeni.
- Wskaż plik o nazwie
state_log.txt, w którym będą rejestrowane komunikaty z klastra. - W ciele pętli zarejestruj maksymalną wartość kolumny
weight_gain_poundsw ramce danychdf. - Wczytaj plik
state_log.txt, aby sprawdzić wyświetlone komunikaty.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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 = ";")