Step 3
データ入門:CSV読み込み、確認、summary、基本グラフ
データをRに渡し、中身を見て、最初のヒストグラム・散布図・箱ひげ図まで進みます。
このページのゴールは、CSVを読み込み、データ構造を確認し、簡単な要約とグラフを出して「何が見えそうか」を言葉にすることです。
···
練習用CSV
まずはサンプルデータで練習できるように、サイト内に小さなCSVを置いています。sample-data/sample_students.csv をダウンロードして、Project フォルダの中に入れてください。
- group:A / B の2群
- study_hours:勉強時間
- score:得点
- satisfaction:満足度(1〜5)
···
CSVを読み込む
最初は read.csv() を覚えれば十分です。ファイルが見つからない場合は、作業ディレクトリがずれていないかを確認してください。
Importcsv
getwd()
list.files()
df <- read.csv("sample-data/sample_students.csv", header = TRUE)
df
GUI で選びたいときは file.choose() を使っても構いません。
···
読み込んだら最初に見るもの
データを読んだら、いきなり分析に進まず、中身を確認します。View()、head()、tail()、str() が最初の四点セットです。
Inspectview
View(df)
head(df, n = 5)
tail(df, n = 5)
str(df)
整然データの感覚
基本は「1列 = 1変数」「1行 = 1観測」「1セル = 1値」です。あとで集計しやすくなるので、まずはこの形を意識すると迷いにくくなります。
- score は得点だけを持つ列
- group は群だけを持つ列
- 複数の情報を1セルに詰め込まない
···
まず summary() を打つ
最初の全体把握には summary() が便利です。数値列なら最小値、中央値、平均、最大値などをすぐ確認できます。
Summarybasic stats
summary(df)
mean(df$score)
median(df$score)
sd(df$score)
# 余裕があれば
# install.packages("psych")
# library(psych)
# psych::describe(df)
カテゴリ列は table() で数える
名義尺度や順序尺度の列では、まず度数を確認します。
Tablecount
table(df$group)
table(df$gender)
table(df$satisfaction)
···
必要な部分だけ抜き出す
全部を見るのが重いときは、条件を付けて一部だけ見ます。まずは subset() で十分です。
Subsetfilter
df_A <- subset(df, group == "A")
df_B <- subset(df, group == "B")
summary(df_A$score)
···
まず描く3種類のグラフ
最初の可視化は、ヒストグラム(分布)、散布図(関係)、箱ひげ図(中央値・外れ値・ばらつき) で十分です。
ヒストグラム
hist()distribution
hist(df$score,
main = "Histogram of Score",
xlab = "Score",
col = "skyblue",
border = "white")
散布図
plot()relationship
plot(df$study_hours, df$score,
main = "Study Hours vs Score",
xlab = "Study Hours",
ylab = "Score",
pch = 19,
col = "tomato")
箱ひげ図
boxplot()grouped
boxplot(score ~ group,
data = df,
main = "Score by Group",
ylab = "Score",
col = c("#bfd4ff", "#2f67d8"))
補足:心理的安全な見方
最初は「うまく読めなくても普通」です。まずは 高そう / 低そう / ばらついていそう / かたまりがありそう といった言葉でOKです。
···
CSVを書き出す
少し加工した結果を保存したいときは write.csv() を使います。
Exportwrite
write.csv(df_A, "students_group_A.csv", row.names = FALSE)
ミニ課題
- CSVを読み込む
- summary(df) を打つ
- ヒストグラム、散布図、箱ひげ図を各1つ描く
- 気づきを3つ書く