library(tidyverse)
## ── Attaching packages ───────────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 2.2.1 ✔ purrr 0.2.4
## ✔ tibble 1.4.2 ✔ dplyr 0.7.4
## ✔ tidyr 0.8.0 ✔ stringr 1.2.0
## ✔ readr 1.2.0 ✔ forcats 0.2.0
## ── Conflicts ──────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
1.1. dplyr
-paketti sisältää datan starwars
. Kukin rivi on yksi elokuvan hahmo. Miten saat eri sukupuolten mediaanipituuden käyttämällä funktioita group_by
, summarise
ja median
?
dplyr::starwars %>% group_by(gender) %>% summarise(pituus = median(height, na.rm = TRUE))
## # A tibble: 5 x 2
## gender pituus
## <chr> <int>
## 1 female 166
## 2 hermaphrodite 175
## 3 male 183
## 4 none 200
## 5 <NA> 97
1.2. dplyr
-paketti sisältää datan starwars
. Kukin rivi on yksi elokuvan hahmo. Miten luot dataan uudeksi muuttujaksi otuksien kotimaailmakohtaisen keskiarvopainon funktioilla group_by
, mutate
ja mean
?
dplyr::starwars %>% group_by(homeworld) %>% summarise(paino = mean(mass, na.rm = TRUE))
## # A tibble: 49 x 2
## homeworld paino
## <chr> <dbl>
## 1 Alderaan 64.0
## 2 Aleen Minor 15.0
## 3 Bespin 79.0
## 4 Bestine IV 110
## 5 Cato Neimoidia 90.0
## 6 Cerea 82.0
## 7 Champala NaN
## 8 Chandrila NaN
## 9 Concord Dawn 79.0
## 10 Corellia 78.5
## # ... with 39 more rows
1.3. dplyr
-paketti sisältää datan starwars
. Kukin rivi on yksi elokuvan hahmo. Miten saat eri sukupuolten mediaanipituuden hiusten väriän mukaan käyttämällä funktioita group_by
, summarise
ja median
?
dplyr::starwars %>% group_by(gender,eye_color) %>% summarise(pituus = median(height, na.rm = TRUE))
## # A tibble: 26 x 3
## # Groups: gender [?]
## gender eye_color pituus
## <chr> <chr> <dbl>
## 1 female black 196
## 2 female blue 166
## 3 female brown 163
## 4 female hazel 178
## 5 female red, blue 96.0
## 6 female unknown NA
## 7 female white 178
## 8 female yellow 168
## 9 hermaphrodite orange 175
## 10 male black 188
## # ... with 16 more rows
1.4. Käy ensin läpi sivun http://courses.markuskainu.fi/utur2018/data.html video ja tallennusvaiheet. Lataa ess-data objektiksi ess
, ryhmittele se maan mukaan ja laske kullekin maalle yleisen luottamuksen keskiarvo (koodi ´ppltrst`)
ess <- haven::read_dta("../datasetit/ESS8e01.stata/ESS8e01.dta")
ess %>%
group_by(cntry) %>%
summarise(ppltrst = mean(ppltrst, na.rm = TRUE))
## # A tibble: 18 x 2
## cntry ppltrst
## <chr> <dbl>
## 1 AT 5.45
## 2 BE 5.25
## 3 CH 6.04
## 4 CZ 5.20
## 5 DE 5.40
## 6 EE 5.76
## 7 FI 6.80
## 8 FR 4.58
## 9 GB 5.41
## 10 IE 5.59
## 11 IL 6.23
## 12 IS 6.50
## 13 NL 6.06
## 14 NO 6.96
## 15 PL 4.58
## 16 RU 5.01
## 17 SE 6.57
## 18 SI 4.61
1.5. Tuo R:ään QOG-projektin Basic-datan aikasarja komennolla dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
. Valitse datasta Transparency index (koodi diat_ti
) ja laske tästä kunkin Pohjoismaan keskiarvo vuosilta 2000-2010. (funktio mean(x, nr.rm = TRUE)
dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
## Local file not found.
## Downloading QoG qog_bas_ts_jan18.csv data,
## from http://www.qogdata.pol.gu.se/data/qog_bas_ts_jan18.csv
## in file: /tmp/RtmpVECRVw/rqog/qog_bas_ts_jan18.csv
## Reading cache file /tmp/RtmpVECRVw/rqog/qog_bas_ts_jan18.csv
dat %>%
filter(cname %in% c("Finland","Sweden","Norway","Denmark","Iceland"),
year %in% 2000:2010) %>%
group_by(cname) %>%
summarise(diat_ti = mean(diat_ti, na.rm = TRUE))
## # A tibble: 5 x 2
## cname diat_ti
## <chr> <dbl>
## 1 Denmark 73.3
## 2 Finland 77.8
## 3 Iceland 71.2
## 4 Norway 75.5
## 5 Sweden 78.1
1.6. Tuo R:ään QOG-projektin Basic-datan aikasarja komennolla dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
. Valitse datasta Transparency index (koodi diat_ti
) ja laske tästä Pohjoismaiden yhteinen keskiarvo kullekin vuodelle 2000-2010. (funktio mean(x, nr.rm = TRUE)
dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
## Reading cache file /tmp/RtmpVECRVw/rqog/qog_bas_ts_jan18.csv
dat %>%
filter(cname %in% c("Finland","Sweden","Norway","Denmark","Iceland"),
year %in% 2000:2010) %>%
group_by(year) %>%
summarise(diat_ti = mean(diat_ti, na.rm = TRUE))
## # A tibble: 11 x 2
## year diat_ti
## <int> <dbl>
## 1 2000 71.8
## 2 2001 73.2
## 3 2002 73.6
## 4 2003 75.4
## 5 2004 75.4
## 6 2005 74.8
## 7 2006 76.8
## 8 2007 76.4
## 9 2008 75.8
## 10 2009 77.2
## 11 2010 76.6
2.1. dplyr
-paketti sisältää datan starwars
. Tee hajontakuvio (scatterplot), jossa hahmon pituus on x-akselilla ja paino y-akselilla
ggplot(dplyr::starwars, aes(x=height,y=mass)) + geom_point()
## Warning: Removed 28 rows containing missing values (geom_point).
2.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 laji.
ggplot(dplyr::starwars) + geom_point(aes(x=height,y=mass,color=species))
## Warning: Removed 28 rows containing missing values (geom_point).
2.3. Tuo R:ään QOG-propektin OECD-datan aikasarja komennolla dat <- rqog::read_qog(which.data = "oecd", data.type = "time-series")
. Piirrä funktiolla geom_line()
viivakuvio, jossa x-akselilla on vuosi ja y-akselilla YK:n ihnimillisen kehityksen indeksi ja viivan väri on maan nimen mukaan.
dat <- rqog::read_qog(which.data = "oecd", data.type = "time-series")
## Local file not found.
## Downloading QoG qog_oecd_ts_jan18.csv data,
## from http://www.qogdata.pol.gu.se/data/qog_oecd_ts_jan18.csv
## in file: /tmp/RtmpVECRVw/rqog/qog_oecd_ts_jan18.csv
## Reading cache file /tmp/RtmpVECRVw/rqog/qog_oecd_ts_jan18.csv
ggplot(dat, aes(x = year, y = undp_hdi, color = cname)) + geom_line()
## Warning: Removed 1622 rows containing missing values (geom_path).
2.4. Tuo R:ään QOG-propektin OECD-datan aikasarja komennolla dat <- rqog::read_qog(which.data = "oecd", data.type = "time-series")
. Valitse datasta Suomi. Piirrä funktiolla geom_col()
tolppakuvio, jossa x-akselilla on vuosi ja y-akselilla YK:n ihnimillisen kehityksen indeksi. Anna kuviolle otsikko “Inhimillisen kehityksen indeksi Suomessa”
dat <- rqog::read_qog(which.data = "oecd", data.type = "time-series")
## Reading cache file /tmp/RtmpVECRVw/rqog/qog_oecd_ts_jan18.csv
ggplot(dat %>% filter(cname == "Finland"), aes(x = year, y = undp_hdi)) + geom_col() + labs(title = "Inhimillisen kehityksen indeksi Suomessa")
## Warning: Removed 46 rows containing missing values (position_stack).
2.5. Tuo R:ään QOG-propektin basic-datan aikasarja komennolla dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
. Valitse datasta Yhdysvallat, Kiina ja Venäjä. Piirrä funktiolla geom_col()
tolppakuvio, jossa x-akselilla on vuosi ja y-akselilla YK:n ihnimillisen kehityksen indeksi ja eri maat paneleissa “facetoituina” (funktio facet_wrap()
). Anna kuviolle otsikko “Inhimillisen kehityksen indeksi”
dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
## Reading cache file /tmp/RtmpVECRVw/rqog/qog_bas_ts_jan18.csv
kuvadata <- dat %>% filter(cname %in% c("Canada","United States","Russia"),
!is.na(undp_hdi))
ggplot(kuvadata, aes(x = year, y = undp_hdi)) + geom_col() + labs(title = "Inhimillisen kehityksen indeksi") + facet_wrap(~cname)
*2.6. Tuo R:ään QOG-propektin basic-datan aikasarja komennolla dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
. Miten saat tehtyä tällaisen kuvan http://courses.markuskainu.fi/utur2018/harjoitukset/kuvat/ggplot2_geom_line_qog.png*
dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
## Reading cache file /tmp/RtmpVECRVw/rqog/qog_bas_ts_jan18.csv
kuvadata <- dat %>% filter(cname %in% c("Canada","United States","Russia"),
!is.na(undp_hdi))
p <- ggplot(kuvadata, aes(x = year, y = undp_hdi, color = cname)) +
geom_point() + geom_line() +
labs(title = "Inhimillisen kehityksen indeksi")
p
*2.7. Tuo R:ään QOG-propektin basic-datan aikasarja komennolla dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
. Miten saat tehtyä tällaisen kuvan http://courses.markuskainu.fi/utur2018/harjoitukset/kuvat/ggplot2_geom_line_bkt.png*
dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
## Reading cache file /tmp/RtmpVECRVw/rqog/qog_bas_ts_jan18.csv
p <- ggplot(dat, aes(x = year, y = gle_cgdpc, group = cname)) +
geom_point() + geom_line() +
labs(title = "bruttokansantuote kansalaista kohden")
p
## Warning: Removed 5715 rows containing missing values (geom_point).
## Warning: Removed 5499 rows containing missing values (geom_path).
*2.8. Tuo R:ään QOG-propektin basic-datan aikasarja komennolla dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
. Miten saat tehtyä tällaisen kuvan http://courses.markuskainu.fi/utur2018/harjoitukset/kuvat/ggplot2_geom_histogram_qog.png*
dat <- rqog::read_qog(which.data = "basic", data.type = "time-series")
## Reading cache file /tmp/RtmpVECRVw/rqog/qog_bas_ts_jan18.csv
kuvadata <- dat %>% filter(year == 2011) %>% select(cname,gle_cgdpc)
p <- ggplot(kuvadata, aes(x = gle_cgdpc)) + geom_histogram() +
labs(title = "Bruttokansantuote kansalaista kohden vuonna 2011 eri maissa")
p
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 18 rows containing non-finite values (stat_bin).
*2.9. Lataa ess-data objektiksi ess
. Piirrä siitä tolppakuvio tapausten määrästä joka näyttä tältä: http://courses.markuskainu.fi/utur2018/harjoitukset/kuvat/ggplot2_geom_bar_ess.png*
dat <- haven::read_dta("../datasetit/ESS8e01.stata/ESS8e01.dta")
p <- ggplot(dat, aes(x = cntry)) + geom_bar() +
labs(title = "Otoskoko ESS-aineiston rundilla 8")
p
*2.10. Lataa ess-data objektiksi ess
. Piirrä siitä tolppakuvio otoksen iän maittaisista keskiarvoista joka näyttä tältä: http://courses.markuskainu.fi/utur2018/harjoitukset/kuvat/ggplot2_geom_col_geom_text_ess.png*
dat <- haven::read_dta("../datasetit/ESS8e01.stata/ESS8e01.dta")
kuvadata <- dat %>% group_by(cntry) %>% summarise(agea = round(mean(agea, na.rm = TRUE),1))
p <- ggplot(kuvadata, aes(x = cntry, y = agea, label = agea)) + geom_col() + geom_text() +
labs(title = "ESS kierros 8: eri maiden otosten iän keskiarvo")
p
*2.11. Lataa ess-data objektiksi ess
. Piirrä siitä tolppakuvio tapausten määrästä joka näyttä tältä: http://courses.markuskainu.fi/utur2018/harjoitukset/kuvat/ggplot2_geom_scatter_geom_text_ess.png*
dat <- haven::read_dta("../datasetit/ESS8e01.stata/ESS8e01.dta")
kuvadata <- dat %>% group_by(cntry) %>%
mutate(health = ifelse(health %in% c(7,8,9), NA, health),
ppltrst = ifelse(ppltrst %in% c(77,88,99), NA, ppltrst)) %>%
summarise(health = mean(health, na.rm = TRUE),
ppltrst = mean(ppltrst, na.rm = TRUE))
p <- ggplot(kuvadata, aes(x = ppltrst, y = health, label = cntry)) +
geom_point() + geom_text(nudge_y = .03) +
labs(title = "ESS kierros 8: luottamus ihmisiin ja koettu terveys",
subtitle = "Luottamus: mitä suurempi arvo sitä korkeampi luottamus
Terveys: mitä pienempi arvo sitä parempi terveys",
caption = "Data: European Social Survey")
p