Upload
maiko-fukata
View
1.226
Download
4
Embed Size (px)
Citation preview
R の基礎いろいろ
2013.10.13
TOKYO.R JOSHIBU #2
R とわたし• はじめて R に触れたのは、大学のときの授業。
• 仕事で R 使用中。主にデータ処理やグラフ作成など。
• R を使ってモデリングとかシュミレーションしたい。 (今後仕事で必要になるので…)
• 現在、ちょっとずつ統計を勉強中。
今日やること前置きが長くなってすいません…
(本当は) CodeIQ に出題されてたR の問題をやる予定でした…。。URL: https://codeiq.jp/
ただ、〆切が結構先なので別の内容にしました。
iris データを使ってプロットする
iris データとは…• R には100以上のデータセットが付属。
• iris データは、3品種のあやめのがく片や花びらの長さや幅などのデータから成り立っている。
• Fisher の研究でも使われたデータ。
• R のデータセットについて詳しく説明されているサイト様。 http://d.hatena.ne.jp/hoxo_m/20120214/p1
iris データをみる
• コマンド実行するとデータが一気に表示されるはず。
• このデータの内容、もうちょっと簡単にみたいんだけど?
• そんなときは、 str() を使う。
$ iris
str() でデータの内容をみる
$ str ( iris )
> str(iris)'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
データ構造
• もうちょっと詳しくみたい、そんなときは summary() !
行数、列数
データの特徴
summary() で特徴(要約等計量)をみる
$ summary ( iris )
> summary(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 Median :5.800 Median :3.000 Median :4.350 Median :1.300 Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500 Species setosa :50 versicolor:50 virginica :50
Min.: 最小値1st Qu.: 第一四分位数Median: 中央値Mean: 平均値3rd Qu.: 第三四分位数Max.: 最大値
これは Factor 型なので品種ごとの行数が表示
データにアクセス
• 部分データを取得したい場合には、 c 関数を使う
$ iris[1:30, 1:2]
行アクセス 列アクセス
$ iris$Sepal.Length
データフレーム$変数名
変数名を取得する
$ colnames(iris)
$ rownames(iris)
行名取得
列名取得
とりあえず、 plot()
$ plot(iris[,1], iris[,2])
X軸 , Y軸のラベルを変更
$ plot(iris[,1], iris[,2], xlab=“Sepal.Length”,
ylab=“Sepal.Width”)
色をつける
$ plot(iris[,1], iris[,2], xlab=“Sepal.Length”,
ylab=“Sepal.Width”, col=“blue”)
軸の長さを指定する
$ plot(iris[,1], iris[,2], xlab=“Sepal.Length”,
ylab=“Sepal.Width”, col=“blue”, xlim=c(0,8), ylim=c(0,8))
プロットマーカー変更$ plot(iris[,1], iris[,2], xlab=“Sepal.Length”, ylab=“Sepal.Width”,
col=“blue”, xlim=c(0,8), ylim=c(0,8), pch=20)
プロットマーカー一覧
• pch =値 で点をプロットする文字を指定できる
品種ごとにマーカーの色を変更
$ plot(iris$Sepal.Length, iris$Sepal.Width,
xlab="Sepal.Length", ylab="Sepal.Width",
col=c(1:length(unique(iris$Species))), ylim=c(2,6),
pch=20)3でもいい
品種ごとにマーカーの色を変更
凡例を追加する
$ plot(iris$Sepal.Length, iris$Sepal.Width,
xlab="Sepal.Length", ylab="Sepal.Width",
col=c(1:length(unique(iris$Species))), ylim=c(2,6),
pch=20)
$ legend("topright", legend=unique(iris$Species),
col=c(1:length(unique(iris$Species))),pch=20)
凡例を追加する
グラフに文字を書き込む• そのまえに、 Sepal.Length と Sepal.Width の相関係数を求
める (書き込むデータを用意するため)
• text() を使って求めた相関係数をグラフに書き込む
$ r <- cor(iris$Sepal.Length, iris$Sepal.Width)
$ r
[1] -0.1175698
グラフに文字を書き込む
$ plot(iris$Sepal.Length, iris$Sepal.Width,
xlab="Sepal.Length", ylab="Sepal.Width", col=“blue”,
ylim=c(2,6), pch=20)
$ text(7, 5, label=r, srt=0, cex=0.8)
グラフに文字を書き込む
plot() ではものたりない場合… • ggplot()
• パッケージをインストールする必要がある $ install.packages(ggplot2)
$ library(ggplot2)
• 書き方になれないとかなり使いにくい…
ggplot() で描写してみるとこんな感じ$ ggplot(iris[,1:2], aes(Sepal.Length, Sepal.Width))
+geom_point()
• こんなかんじで描写
• 場合によっては、 ggplot()使ったほうが楽に描写できるものもある
(例:積み上げグラフとか)
わからないときは…• R−tips
http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html
• RjpWiki
http://www.okada.jp.org/Rwiki/
• seekR
http://seekr.jp/
• ひたすらググる、もしくは人に聞く
ご清聴ありがとうございました
至らない点が多々あったと思いますが、最後までお付き合いしていただきありがとうございました。
今後もどうぞよろしくお願いします。
E-mail: mf.0833 <at> gmail.com