面白きこともなき世を考えて

子育てと競争戦略とゲームと日々のあれこれを適当に。

統計ソフトRとggplot2の使い方を忘れないようにメモしておく

最近流行りのデータサイエンティスト的な方々と仕事をする必要が出てきたので、紳士のたしなみとしてRくらいは使えないといかんだろう、と思い簡単に勉強中。

自由すぎて最初はとっつきづらいが、実際にデータを入れてグラフとか描き始めると途端に面白くなる。

f:id:murasakihukurou:20130911222129p:plain

Rの詳しい使い方のサイトは多くが英語なんだけど、日本にもいくつか解説してくれるサイトがあったのでそちらを見ながら勉強してみた。

というわけで、そんな素敵な解説サイトと自分が練習用に書いていた基本的なスクリプトを赤裸々に紹介。


R作業用のスクリプト集

Rの基本的な動作

#データファイルを読み込み
data=read.table("demodata.txt", header=TRUE, sep="\t")


#data内のht列を表示
data$ht


#data内のsex列のそれぞれの項目の個数を表示
table(data$sex)


#計算した値をbmiに投入
bmi=(data$wt*10000)/(data$ht*data$ht)


#dataのsex列のデータ型を判定
class(data$sex)


#dataのht列の2番目と4番目の値を表示
data$ht[c(2,4)]


#dataのht列の値が150より大きい値をTorFで判定
data$ht>150


統計的な処理

#dataの平均値、中央値、最大値、最小値などを表示
summary(data)


#bmiの標準偏差を表示
sd(bmi)


#dataの金額と資料請求の相関係数を算出
cor(data$金額, data$資料請求)


#dataのCTを説明変数、資料請求を目的変数とした線形回帰モデルを求める
lm(data$CT~data$資料請求)


#上記回帰モデルの概要を表示
summary(lm(data$CT~data$資料請求))


#上記回帰モデルの残差をグラフに描画
plot(lm(data$CT~data$資料請求), which=1)


R標準のグラフ描画

#ヒストグラムの描画
hist(data$ht,breaks=20)


#箱ひげ図の描画
boxplot(data$ht)


ggplotでの基本的なグラフ描画

#図形描画ライブラリggplot2を読み込み
library(ggplot2)


#dataのsexで項目分けしたhtに関する箱ひげ図を描画
ggplot(data, aes(x=sex, y=ht, fill=sex)) + geom_boxplot() + theme_bw(16)


#dataのCTをX軸、資料請求をY軸とした散布図と近似曲線を描画
ggplot(data, aes(x=CT, y=資料請求)) + geom_point() + theme_bw(16) + geom_smooth(method="lm")



ggplotでの簡単なグラフ描画

#diamondsをデータ元としてcaratをX軸、priceをY軸として、clarityで色分けした散布図を描画
qplot(carat, price, data = diamonds, colour = clarity)


#折れ線グラフを描画
qplot(date, unemploy, data = economics, geom = "line")


#棒グラフを描画
qplot(color, data = diamonds, geom = "bar")


#ヒストグラムを描画
qplot(price, data = diamonds, geom = "histogram")


#密度曲線を描画
qplot(price, data = diamonds, geom = "density")


#箱ひげ図を描画
qplot(cut, carat, data = diamonds, geom = "boxplot")


#cutで項目分けした別々の散布図を一度に描画
qplot(carat, price, data = diamonds, color = cut, facets = ~ cut)


R及びggplot2について調べるときに見たサイトたち

統計ソフトRの使い方

ggplot2 の自分用メモ集を作ろう - Triad sou.

ggplot2でグラフ書きはじめた話 - @soh335 memo

ggplot2のqplot関数のまとめ - ぬいぐるみライフ(仮)



↓読んでみたい。。。

グラフィックスのためのRプログラミング―ggplot2入門

グラフィックスのためのRプログラミング―ggplot2入門