1 Correct answers: export

1.1. dplyr-paketin mukana tulee data storms. Tallenna se työhakemistoon RDS muodossa. Miten luet datan takaisin R:ään?

saveRDS(storms, "./storms.RDS")
readRDS("./storms.RDS")

1.2. dplyr-paketin mukana tulee data storms. Tallenna se työhakemistoon csv muodossa. Miten luet datan takaisin R:ään?

write.csv(storms, "./storms.csv")
read.csv("./storms.csv", stringsAsFactors = FALSE)

1.3. dplyr-paketin mukana tulee data storms. Tallenna se työhakemistoon xlsx muodossa. Miten luet datan takaisin R:ään?

openxlsx::write.xlsx(storms, "./storms.xlsx")
readxl::read_excel("./storms.xlsx")

1.4. dplyr-paketin mukana tulee data storms. Tallenna se työhakemistoon SPSS:n .sav muodossa. Miten luet datan takaisin R:ään?

haven::write_sav(storms, "./storms.sav")
haven::read_sav("./storms.sav")

2 Correct answers: join

2.1. Asenna CRAN:sta paketti nycflights13 ja lataa se. Datan on kuvattu luvussa: http://r4ds.had.co.nz/relational-data.html#nycflights13-relational - yhdistä datat flights ja airlines. Kuinka monta lentoa Hawaiian Airlines Inc. lensi New Yorkista vuonna 2013. Datojen dokumentaation saa esim. komennolla ?flights

left_join(flights, airlines) %>% filter(name == "Hawaiian Airlines Inc.") %>% summarise(n=n())

2.2. Yhdistä dataan flights datat airlines ja planes. Kuinka monta lentoa matkustajaa US Airways Inc. yhtiön lennoilla New Yorkista oli keskimäärin vuonna 2013.

left_join(flights, airlines) %>% left_join(planes) %>% filter(name == "US Airways Inc.") %>% summarise(seats = mean(seats, na.rm = TRUE))

2.3. Yhdistä dataan flights data airports ja weather. Montako sellaista lentoa kentältä JFK:n kentältä lähti jolloin tuulennopeus >= 30?

left_join(flights, airports, by = c("origin" = "faa")) %>% left_join(weather) %>% filter(origin == "JFK") %>% filter(wind_speed >= 30) %>% count()

3 Correct answers: visualise

3.1. dplyr-paketti sisältää datan starwars. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla, paino y-akselilla ja pisteen väri on hahmon sukupuoli. Anna otsikoksi ‘Starwars-hahmot’ ja aseta teemaksi classic base-fonttikoolla 8

ggplot(dplyr::starwars) + geom_point(aes(x=height,y=mass,color=gender)) + labs(title = "Starwars-hahmot") + theme_classic(base_size = 8)

3.2. dplyr-paketti sisältää datan starwars. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla, paino y-akselilla ja pisteen väri on hahmon sukupuoli. Anna otsikoksi ‘Starwars-hahmot’ ja aseta teemaksi classic base-fonttikoolla 8. Lisäksi aseta pallon värille uusi paletti Dark1 funktiolla scale_color_brewer()

ggplot(dplyr::starwars) + geom_point(aes(x=height,y=mass,color=gender)) + labs(title = "Starwars-hahmot") + theme_classic(base_size = 8) + scale_color_brewer(palette = "Dark2")

3.3. dplyr-paketti sisältää datan starwars. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla, paino y-akselilla ja pisteen label on hahmon nimi. Anna otsikoksi ‘Starwars-hahmot’. Anna kuvan teemaksi minimal. Tee luennolla esitetyt vaiheet, jotta saat fontit extrafont-paketin käytettäväksi, ja määritä koko kuvan basefontiksi sekä pisteen labeleiden fontiksi joku koneeltasi löytyvät erikoinen fontti. Laske lisäksi labelit pisteiden alapuolelle

ggplot(dplyr::starwars, aes(x=height,y=mass,label=name)) + geom_point() + labs(title = "Starwars-hahmot") + geom_text(family = "Impact", nudge_y = -70)  + theme_minimal(base_family =  "Impact")

3.4. dplyr-paketti sisältää datan starwars. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla, paino y-akselilla. Aseta x-akselin tekstit 45-asteen kulmaan. (vinkki: theme(element. = element_text(kulma = 45) ) )*

ggplot(dplyr::starwars, aes(x=height,y=mass,label=name)) + geom_point() + labs(title = "Starwars-hahmot") + theme(axis.text.x = element_text(angle = 45))

3.5. dplyr-paketti sisältää datan starwars. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla, paino y-akselilla ja pisteen väri on hahmon sukupuoli. Piilota värin selite ie. legend.

ggplot(dplyr::starwars, aes(x=height,y=mass,label=name)) + geom_point() + labs(title = "Starwars-hahmot") + theme(axis.text.x = element_text(angle = 45))

3.6. dplyr-paketti sisältää datan starwars. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla, paino y-akselilla ja pisteen label on hahmon nimi. käytä funktiota ggrepel::geom_label_repel()-pisteiden nimeämiseen

ggplot(dplyr::starwars, aes(x=height,y=mass,label=name)) + geom_point() + ggrepel::geom_label_repel()

3.7. dplyr-paketti sisältää datan starwars. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla, paino y-akselilla. Tallenna kuva levylle .png-muodossa nimellä plotti.png, jonka leveys on 8, korkeus 6 sekä dpi 300

kuvaobjekti <- ggplot(dplyr::starwars, aes(x=height,y=mass)) + geom_point()
ggsave(filename = "plotti.png", plot = kuvaobjekti, width = 8, height = 6, dpi = 300)

3.8. dplyr-paketti sisältää datan starwars. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla, paino y-akselilla. Tallenna kuva levylle .pdf muodossa vaakasuorassa A4-koossa!

kuvaobjekti <- ggplot(dplyr::starwars, aes(x=height,y=mass)) + geom_point()
ggsave(filename = "plotti.pdf", plot = kuvaobjekti, width = 11.7, height = 8.27)