勉強 2日目
データの山をただ眺めていても,なかなかその中から変数の特徴をつかむことは難しい。 そこで本章では,データを代表する値(代表値)として,平均や分散,標準偏差,中央値などを計算し,データの特徴をつかむことから始める。
まずはcsvファイルを読み込む。 csvファイルの読み込みは,基本関数read.csv()
を用いる。
df <- read.csv("chap2.csv",header = TRUE)
ある条件を満たす行を抽出したい場合は,subset()
を用いる。 使い方は,subset(データ, 条件式)
のように書くことで,条件を満たす行をデータから抽出できる。 ここでは基本関数subset()
を用いてB国(nationが2)のデータを取り出す。
df_B <- subset(df,nation==2)
つぎに,as.factor()
を使い,カテゴリー変数gender
をfactorに変換する。
df_B$gender <- as.factor(df_B$gender)
B国のデータだけを取り出せたので,B国の所得と性別の記述統計量を求める。
summary(df_B[,c(1,3)]) # 1列目と3列目の変数だけ
income gender
Min. :487.0 1:4
1st Qu.:494.5 2:6
Median :499.5
Mean :500.6
3rd Qu.:502.0
Max. :517.0
B国の収入の分布を知るために,ヒストグラム(histogram)を作成する。 ここでは基本関数hist()
を用いる。
par(family = "HiraKakuProN-W3") # mac文字化け対策
hist(df_B$income, xlab="収入", ylab="度数")
性別の度数分布を表す棒グラフ(barplot)
plot(df_B$gender,xlab="性別", ylab="度数", names.arg = c("男性","女性"))
男女別の所得分布を表す箱ひげ図(box plot)
par(family = "HiraKakuProN-W3") # mac文字化け対策
boxplot(df_B$income ~ df_B$gender,xlab="性別", ylab="所得", names.arg = c("男性","女性"))
まずはtidyversekパッケージを読み込む。
library(tidyverse)
readr
パッケージのread_csv()
関数でcsvファイルを読み込む。 1行目は整数,2と3行目はファクターとして読み込む。
df <- readr::read_csv("chap2.csv",col_types="iff")
dplyr
パッケージのfilter()
を用いてB国のデータを取り出しつつ,select()
関数で必要な変数だけを選び,summary()
で記述統計量を計算する。
df %>%
dplyr::filter(nation==2) %>%
dplyr::select(-nation) %>%
summary()
income gender
Min. :487.0 1:4
1st Qu.:494.5 2:6
Median :499.5
Mean :500.6
3rd Qu.:502.0
Max. :517.0
tidyverse
パッケージ群のなかの強力な作図パッケージggplot2
を用いてB国の収入のヒストグラムを書く。
df_BB <- df %>%
dplyr::filter(nation==2) %>%
dplyr::select(income,gender)
ggplot(df_BB,aes(x = income)) +
geom_histogram(binwidth = 5, breaks=seq(485, 520, by=5), colour="darkgreen", fill="skyblue")
性別の度数分布の棒グラフ
ggplot(data=df_BB,aes(gender)) + geom_bar(colour="darkgreen", fill="skyblue")
男女別の所得分布を表す箱ひげ図
ggplot(df_BB,aes(y=income,x=gender)) + geom_boxplot(aes(fill=gender))
abs()
floor()
かtrunc()
# 正の値の時は問題ないが,
floor(3.14159)
[1] 3
trunc(3.14159)
[1] 3
# 負の値の時は結果が異なる。
floor(-3.14159)
[1] -4
trunc(-3.14159)
[1] -3