Zacznij terazZacznij za darmo

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

Zobacz kurs

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_pounds w ramce danych df.
  • 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 = ";")
Edytuj i uruchom kod