以下の指標の中から、二つ以上(複数)を選択して、データの概要(description)を記録し、データを WDI で取得し、以下の分析をする。
それぞれについて考察(気づいたこと、疑問など)を記す
2023.2.10.23:59 までに Moodle の課題2提出ボックスに提出してください。
できたグラフだけでも構いませんから、期限までに提出してください。解説を加え、課題2再提出ボックスを作成する予定です。
CO2 emissions (metric tons per capita) :EN.ATM.CO2E.PC [Link]
Forest area (% of land area):AG.LND.FRST.ZS [Link]
Renewable electricity output (% of total electricity output):EG.ELC.RNEW.ZS [Link]
Electricity production from oil, gas and coal sources (% of total):EG.ELC.FOSL.ZS [Link]
Electricity production from nuclear sources (% of total):EG.ELC.NUCL.ZS [Link]
Access to electricity, urban (% of urban population):EG.ELC.ACCS.UR.ZS [Link]
Access to electricity, rural (% of rural population):EG.ELC.ACCS.RU.ZS [Link]
People using at least basic drinking water services, urban (% of urban population):SH.H2O.BASW.UR.ZS [Link]
People using at least basic drinking water services, rural (% of rural population):SH.H2O.BASW.RU.ZS [Link]
People using at least basic sanitation services, urban (% of urban population):SH.STA.BASS.UR.ZS [Link]
People using at least basic sanitation services, rural (% of rural population):SH.STA.BASS.RU.ZS [Link]
データ名1:、データコード:、変数名:
概要:
データ名2:、データコード:、変数名:
概要:
これまでとも同じように二つのパッケージを読み込み(load)ます。
library(tidyverse)
library(WDI)
WDI パッケージを使って、直接データをダウンロードし、変数名を、under_6.85 に指定。
この変数名は、今後使いますから、重要です。一応、例として、わたしが使った、変数名を書いてあります。他の変数名を使っても構いません。
df_unemploy <- WDI(indicator = c(female_unemploy = "SL.UEM.TOTL.FE.ZS",
male_unemploy = "SL.UEM.TOTL.MA.ZS"),
extra = TRUE)
data ディレクトリに書き込んでおきます。
write_csv(df_unemploy, "data/unemploy.csv")
data ディレクトリから読み出します。Run All や、Run All Chunks Above をする時は、上の二つをスキップする設定にしてあります。
df_unemploy <- read_csv("data/unemploy.csv")
データ名で、中身を表示できます。head(df_unemploy)
とすると、6行表示されます。
df_unemploy
変数の情報を得ることができます。
str(df_unemploy)
df_unemp <- df_unemploy |>
select(country, iso2c, year, female_unemploy, male_unemploy, region, income)
df_unemp
データには country
のところに、国だけでなく、地域も入っているので、地域のリストを、iso2c
で REGION
に入れておきます。
REGION <- c("1A", "1W", "4E", "6F", "6N", "6X", "7E", "8S", "A4", "A5",
"A9", "B1", "B2", "B3", "B4", "B6", "B7", "B8", "C4", "C5", "C6",
"C7", "C8", "C9", "D2", "D3", "D4", "D5", "D6", "D7", "EU", "F1",
"F6", "M1", "M2", "N6", "OE", "R6", "S1", "S2", "S3", "S4", "T2",
"T3", "T4", "T5", "T6", "T7", "V1", "V2", "V3", "V4", "XC", "XD",
"XE", "XF", "XG", "XH", "XI", "XJ", "XL", "XM", "XN", "XO", "XP",
"XQ", "XT", "XU", "XY", "Z4", "Z7", "ZB", "ZF", "ZG", "ZH", "ZI",
"ZJ", "ZQ", "ZT")
地域名にはどのようなものがあるか見ておきます。
df_unemp |> filter(iso2c %in% REGION) |> distinct(country, iso2c)
国名も、地域(region)と、所得レベル(income)と共に、表示しておきます。
df_unemp |> filter(!(iso2c %in% REGION)) |> distinct(country, iso2c, region, income)
自分で分析したい国のリストを作ってください。ここでは、ASEAN を iso2c で設定します。国名で選択しても構いません。
ASEAN <- c("BN", "KH", "ID", "LA", "MY", "MM", "PH", "SG", "VN")
asean <- c("Brunei Darussalam", "Cambodia", "Indonesia", "Lao PDR", "Malaysia", "Myanmar", "Philippines", "Singapore", "Viet Nam")
まずは、NA
の値を削除します。そのあとで、国の情報の数を数えたいので、!(iso2c %in% REGION)
で、上でおいた、地域の iso2c を選択し、!
は否定でしたから、地域ではないものを選択し、その数を棒グラフにしています。
df_unemp |> drop_na(female_unemploy, male_unemploy) |> filter(!(iso2c %in% REGION)) |>
ggplot(aes(year)) + geom_bar()
気づいたこと・疑問
df_unemp |> filter(country == "Japan") |> drop_na(female_unemploy) |>
ggplot(aes(year, female_unemploy)) + geom_line() +
labs(title = "日本の女性労働者失業率")
df_unemp |> filter(country == "Japan") |> drop_na(male_unemploy) |>
ggplot(aes(year, male_unemploy)) + geom_line() +
labs(title = "日本の男性労働者失業率")
気づいたこと・疑問
ASEAN は、iso2c ですから、下のようにします。
df_unemp |> filter(iso2c %in% ASEAN) |> drop_na(female_unemploy) |>
ggplot(aes(year, female_unemploy, col = country)) + geom_line()+
labs(title = "ASEAN の女性労働者失業率")
asean は、国名でしたから、下のようにします。今度は、男性の失業率です。
df_unemp |> filter(country %in% asean) |> drop_na(male_unemploy) |>
ggplot(aes(year, male_unemploy, col = country)) + geom_line() +
labs(title = "ASEAN の男性労働者失業率")
気づいたこと・疑問
cols = c(female_unemploy, male_unemploy)
と、一つの指標にまとめるものをリストすると、name
に指標名が入り、value
に、その値が入る。書式は、pivot_longer(cols = ..., names_to = ..., values_to = ...)
で、初期設定では、names_to = "name", values_to = "value"
となっているので、指定しないと、下のようになる。Help 参照。
df_unemp_long <- df_unemp |> pivot_longer(cols = c(female_unemploy, male_unemploy))
df_unemp_long
col = name
と指定すると、色で区別して、一つのグラフに描ける
df_unemp_long |> filter(country == "Japan") |> drop_na(value) |>
ggplot(aes(year, value, col = name)) + geom_line() +
labs(title = "日本の男女別失業率")
気づいたこと・疑問
df_unemp_long |> filter(iso2c %in% ASEAN) |> drop_na(value) |>
ggplot(aes(year, value, col = country, linetype = name)) + geom_line() +
labs(title = "ASEAN の男女別失業率")
気づいたこと・疑問
df_unemp |> filter(!(iso2c %in% REGION)) |> drop_na(female_unemploy, male_unemploy) |>
ggplot(aes(female_unemploy, male_unemploy)) + geom_point() +
labs(title = "失業率:男女別相関")
気づいたこと・疑問
df_unemp |> filter(!(iso2c %in% REGION)) |> drop_na(female_unemploy, male_unemploy) |>
ggplot(aes(female_unemploy, male_unemploy)) + geom_point() +
geom_smooth(formula = 'y~x', method = "lm", se = FALSE) +
labs(title = "失業率:男女別相関(回帰直線付)")
気づいたこと・疑問
df_unemp |> filter(!(iso2c %in% REGION)) |> filter(year == 2022) |>
drop_na(female_unemploy, male_unemploy) |>
ggplot(aes(female_unemploy, male_unemploy)) + geom_point() +
labs(title = "2022年の失業率:男女別相関")
気づいたこと・疑問
df_unemp |> filter(!(iso2c %in% REGION)) |> filter(year == 2022) |>
drop_na(female_unemploy, male_unemploy) |>
ggplot(aes(female_unemploy, male_unemploy)) + geom_point() +
geom_smooth(formula = 'y~x', method = "lm", se = FALSE) +
labs(title = "失業率:男女別相関(回帰直線付)")
気づいたこと・疑問
df_unemp |> filter(!(iso2c %in% REGION)) |> filter(year == 2022) |>
drop_na(female_unemploy, male_unemploy) |> select(female_unemploy, male_unemploy) |> cor()
気づいたこと・疑問
指標別
df_unemp_long |> filter(!(iso2c %in% REGION)) |> filter(year == 2022) |>
drop_na(value) |>
ggplot(aes(name, value)) + geom_boxplot() +
labs(title = "労働者失業率:男女別箱ひげ図")
地域別
df_unemp_long |> filter(!(iso2c %in% REGION)) |> filter(year == 2022) |>
drop_na(value, region) |>
ggplot(aes(region, value, fill = name)) + geom_boxplot() + coord_flip() +
labs(title = "労働者失業率:男女・地域別箱ひげ図")
収入レベル別
df_unemp_long |> filter(!(iso2c %in% REGION)) |> filter(year == 2022) |>
drop_na(value, income) |> filter(income != "Not classified") |>
ggplot(aes(income, value, fill = name)) + geom_boxplot() + coord_flip() +
labs(title = "労働者失業率:男女・収入レベル別箱ひげ図")
選択した年別
df_unemp_long |> filter(!(iso2c %in% REGION)) |> filter(year %in% c(1991, 2001, 2011, 2021)) |>
drop_na(value) |>
ggplot(aes(factor(year), value, fill = name)) + geom_boxplot() +
labs(title = "労働者失業率:男女別・10年ごとの箱ひげ図")
選択した国別
df_unemp_long |> filter(iso2c %in% ASEAN) |> drop_na(value) |>
ggplot(aes(country, value, fill = name)) + geom_boxplot() + coord_flip() +
labs(title = "ASEAN の労働者失業率:男女別箱ひげ図")
いくつか、試してみてください。
気づいたこと・疑問
気づいたこと・疑問
気づいたこと・疑問
気づいたこと・疑問