2015-02-14 HiRoshima.R #3 @ Hijiyama Univ.
入門者講習
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
 とは何か
• 統計処理を目的とするプログラミング言語
• 無償+オープンソースのソフトウェア
• 作者:Ross Ihaka & Robert Gentleman (R & R)
• Ross Ihaka and Robert Gentleman. R: A language for data analysis and graphics.
Journal of Computational and Graphical Statistics, 5(3):299-314, 1996.
• http://biostat.mc.vanderbilt.edu/twiki/pub/Main/JeffreyHorner/JCGSR.pdf
要するに
統計ソフト
  の何が良いのか
•無償(IBM SPSS Statistics は約10万円で保守なし...)
•統計処理の種類が豊富
•作図結果が美しい(簡素)
なぜ今  なのか
• 経費や研究費の節約
• 分析手法の明確化
• 可視化による傾向把握
 の弱点
• 文字入力による操作
• プログラムを組む感覚を養成
• 確実に伝わるという利点も
• 多方面の知識が必要
• 英語+統計+計算機
• 参考書籍がお高め...
モウダメダー
Excel や SPSS は...
•高価(気軽に使えない)
•処理が信頼できず
• Excel 使うな(奥村先生@三重大)
•作図結果が美しくない
  の基本操作
‐Install / Update / Uninstall‐
1. http://www.r-project.org/ にアクセス
2. “download R”をクリック
3. JAPAN の中から1つを選ぶ
4. OS に応じたリンクをクリック
  のインストール
  のインストール
• Windows: : http://cran.ism.ac.jp/bin/windows/base/
•「Download R 3.1.1 for Windows」をクリック
• Mac OS X:http://cran.ism.ac.jp/bin/macosx/
•「R-3.1.1-mavericks.pkg」をクリック
  のアップデート
1. http://www.r-project.org/ にアクセス
2. 自分が使っているバージョンより
新しいものが出ているか確認
3. 新規にインストール用ファイルを
ダウンロードしてインストール
  のアップデート
• セキュリティ上の問題がない限りは,
むやみに更新しない
• パッケージ(付加機能)の動作不良回避
• 新旧の共存は可能
• Windows/Mac: 別名でインストール
• ただし何がどう共有されているかは不明
 のアンインストール
• Windows 7/8
• コンパネ→プログラムのアンインストール
• Mac OS X
• /Applications にある    アイコンと /Library の中の
Frameworks にある R. framework を削除(CleanApp 可)
  の起動
• Windows 7/8
• START → Program → R → R 3.1.1 を選択
• Mac OS X
• /Applications 内の をダブルクリック
「コンソール」の表示を確認
  の終了
• コンソールに「q()」と入力
• 今は「作業スペース」は保存しない
• ウィンドウが消えれば終了
  で困ったら...
•まずは Web 検索!
• seekR: http://seekr.jp/
• R SEEK:http://www.rseek.org/
• RjpWiki: http://www.okada.jp.org/RWiki/
• R-Tips:http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html
• 標準搭載の help(sth) でも確認可能
  で困ったら...
•参照資料は豊富にあります
• R オンラインガイド(山口大学教育学部教育心理学コース)
• R 言語入門(ドットインストール)
• はじめての「R」(林真広 氏)
• R による統計処理(青木繁伸先生@群馬大学)
  概論まとめ
•    は統計ソフト
•無償+何でも統計+美しく作図
•困ったら Web 検索!!
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
 といえば
関数
が命
関数とは
指定した値に対して
何らかの処理をして
結果を返すもの
関数(Input を処理)
Input
Output
sqrt():平方根
•> sqrt(2)
•> sqrt(144)
•> sqrt(104976)
sqrt 関数
2
1.414214
「関数(値)」が命
• には多数の関数がある
•q() や help(sth) も関数
•必要な関数をしつこく実行
  といえば
変数
も命
変数とは
1つ以上の値を
まとめていれておく
「箱」のこと
では
ベクトルとも呼ばれ
複数の値を1つに
まとめたものを指す
統計処理などを行うには
複数の値をまとめて扱う
ことが必要で
それを使い回すために
変数を使う
ちなみに
変数に数値を
入れることを
「代入」といいます
なにはともあれ
実行してみましょう
変数の名前は“hako”
•> hako <- c(1,2,3,4,5)
•> hako
• c() 関数:combine (cf. https://twitter.com/#!/sakaue/status/193708048030760960)
• 値を1つにまとめる関数
• 逆に書いても(一応)OK
c()関数の“<-”は何?
hako <- c(1,2,3,4,5) の“<-”は
左向きの矢印(←)
を表現
(入れ替えても動きます)
コンソールで「+」が出たら...
• 入力中に誤って[Enter] を押すと,
待機状態を示す「+」が出る
• [STOP] ボタンでキャンセル
• [Esc] キーでキャンセル
履歴機能と補完機能
•履歴: [↑][↓] の矢印キー
•補完: [Tab]キー
いま“hako”という名前の
「変数」の中に
1から5までの5つの数字が
まとめて入っている状態
以下の関数を実行
•> sqrt(hako)
•> log(hako)
もし変数がなかったら
何度も関数を
繰り返す羽目になる
sqrt(1), sqrt(2) ... sqrt(5)
log(1), log (2) ... log (5)
一括処理のために
変数(ベクトル)の
利用は不可欠
ここまでのまとめ
•   は「関数」と「変数」が命
• 関数を使って数値を処理
• q(), help(), sqrt(), log(), c()
• 変数を使って一括処理!
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
Sub topics
1. 行列のおはなし
2. データフレーム
3. 外部データの読込
例えば...
•身長と体重
•年齢と年収
•覚えた単語数とTOEIC スコア
表にすれば...
身長 体重
A 180 75
B 170 65
C 165 60
D 175 70
E 190 80
複数の行や列で表される
データを扱うために
Rでは「行列」を使う
行列とは
数値が縦横に並べられたもの
1 2 3
4 5 6
7 8 9
行
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
列
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
Sub topics
1. 行列のおはなし
2. データフレーム
3. 外部データの読込
データフレームとは
• いろんなデータを突っ込んだもの
• いろんな=質的データ+量的データ
• 突っ込む=一緒に並んでいること
名前 血液型 身長 体重
坂本 B 175 65
高橋 B 177 70
阿部 B 174 75
長野 A 179 70
松本 O 170 60
データフレームとは
データフレームとは
• Excel の WS とほぼ同じイメージ
• 既存データの読込>自力で作る
• data.frame() 関数が使える
1. 行列のおはなし
2. データフレーム
3. 外部データの読込
Sub topics
作業ディレクトリの設定
•作業ディレクトリとは...
•データを読み込む場所
•データを書き出す場所
作業ディレクトリの設定
• Windows:ファイル → ディレクトリの変更
• “My Documents”にファイル移動
• Mac OS X:環境設定 → 一般(起動)
• ホームディレクトリにファイル移動
• Linux:up to you...
作業ディレクトリの設定
• コンソールからの確認・設定も可能
• getwd()関数:現在の設定を確認
• > getwd()
• setwd()関数:現在の設定を変更
• > setwd("/Users/sakaue/Desktop/")
• 実行注意!!
データの読込 その1
• read.csv() 関数
• CSV 形式のファイルを読み込む
• CSV: Comma Separated Value
1. hiro3.csv を作業ディレクトリへ移動
• XLS/XLSX 形式のものは保存時に変換
• CSV ファイルの文字コードは UTF-8 に
2. > test <- read.csv(choose.files(), header = TRUE) #Win
# test <- read.csv(file.choose(), header = TRUE) #Mac
3.> test [Enter] で中身を確認
データの読込 その1
データの読込 その2
• read.delim() 関数
• 表形式のデータ読み込む
• delim: delimiter(区切り文字)
1.hiro3.xls を開いてマウスで範囲指定
2.> test2 <- read.delim("clipboard") で代入
!
3.> test2 [Enter] で中身を確認
データの読込 その2
Mac の場合: read.delim(pipe("pbpaste"))
読み込んだら関数で処理
> table(test[,3])
•度数分布を確認する
> mean(test[,3])
•平均値を求める
3列目対象
3列目対象
外部データの読込
• 作業ディレクトリの設定に注意
• CSV 形式に変換後,read.csv()関数で読込
• 必要な行 or 列を指定して処理
データを集めたら
数値要約だけでなく
データの可視化も必要
基本的な作図手順
1. 変数に値を代入
2. 作図用の関数で処理
• ヒストグラム
• 散布図
• 棒グラフ
• 折れ線グラフ
• 箱ひげ図
作成できる図の種類
まずはヒストグラム
【事例】
得点のヒストグラムを
作成する
まずはヒストグラム
> pretest <- (test$Pre)
> hist(pretest)
次は散布図
【事例】
事前テストの得点と
事後テストの得点を
比較し,伸びを見る
続いて散布図
> pretest <- (test$Pre)
> posttest <- (test$Post)
> plot(pretest, posttest)
> plot(pretest,posttest, ylim=c(0,100),xlim=c(0,100))
続いて箱ひげ図
【事例】
事前テストの得点と
事後テストの得点の
<幅>を比較する
続いて箱ひげ図
> pretest <- (test$Pre)
> posttest <- (test$Post)
> boxplot(pretest, posttest, names=c("PRE", "POST"))
箱ひげ図
> boxplot(pretest, posttest,
names=c("Pre", "Post"),
horizontal=T)
箱ひげ図
> boxplot(pretest, posttest,
names=c("Pre", "Post"),
horizontal=T, ylim=c(0,100))
箱ひげ図
> boxplot(pretest, posttest,
names=c("Pre", "Post"),
horizontal=T, ylim=c(0,100),
col="blue")
箱ひげ図
!
> boxplot(pretest, posttest,
names=c("Pre", "Post"), horizontal=T,
ylim=c(0,100), col="blue",
xlab="SCORE", ylab="TEST",
main="BOXPLOT")
今度は折れ線グラフ
> quiz <- test[,c(3,4,5,6,7,8,9,10,11,12)]
# 小テストの得点だけを取り出す
> ID1<- as.numeric(quiz[2,])
# データの型変換(リストから数値へ)
> plot(ID1, type="l")
# 引数 type を l にして折れ線グラフに
> barplot(ID1)
# 10本並んだ棒グラフ
> barplot(ID1, col=rainbow(5))
# 引数 col を rainbow(5) にして5色使用
> barplot(ID1, col=rainbow(5), horiz=T)
# 引数 horiz を T にして水平に並べる
最後は棒グラフ (1)
最後は棒グラフ (2)
> barplot(ID1, col=rainbow(5), horiz=T,
names=c("W1", "W2", "W3", "W4",
"W5", "W6", "W7", "W8", "W9", "W10"),
main="QUIZ")
# 10本並んだ棒グラフ。項目名やタイトルを追記。
グラフの保存方法
> pdf() # pdf デバイスを開く()
> plot(pretest, posttest) # プロットし出力
> dev.off() # デバイスを閉じる
★画面上のメニューから操作するか RStudio を使う方が簡単
ちなみに...
Windows 版 R であれば
(Word 等M$製品への貼付けなら)
Metafile での利用がオススメ
ちなみに...
Mac 版 R であれば
Postscript / SVG など...
(参考: http://sheephead.homelinux.org/2012/02/14/6959/)
作図手順のまとめ
1.変数に値を代入する
2.作図用の関数を使って処理する
3.形式を指定して保存
+人に伝承(twitter, FB)
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
RStudioとは?
• R を快適に使うための統合開発環境 (IDE)
• ひとつの画面に複数の情報を配置
• 面倒(そう)なことがすぐできて(・ ・)イイ!!
• 関数等の入力支援(tab)
• 変数等の中身をすぐに確認(CLICK!)
• ヘルプをすぐに確認(F1)
RStudio のインストール
(R そのものは事前にインストールが必要)
RStudio のインストール
RStudio のインストール
↓OS に応じてダウンロード
RStudio のインストール
コンソール
エディタ
変数・履歴
(旧 workspace)
いろいろ
RStudio の起動直後
http://www.slideshare.net/TakashiYamane1/rstudio
時間がないので
山根さんの資料を見ましょう
(HiRoshima.R #2 での資料。35K views!)
いろいろと手助けしてくれる
RStudio を使って
R に慣れていきましょう
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
Agenda
1. R の基本操作
2. 関数と変数が命
3. 外部データの読込と作図
4. RStudio で快適操作
5. パッケージの利用
Packageとは?
• ある処理・機能に特化したプログラム
• base(基本パッケージ)だけでも 1,000 以上
• 特殊な処理を行う際は,別の package を追加
• 言語処理に特化したものもある(ex. RMeCab)
可視化の発展編
violin plot と beeswarm
―分布をより分かりやすく捉えるために―
violin plot ≒ boxplot+hist
> install.packages("vioplot")
> library("vioplot")
> vioplot(pretest,posttest, names=c("Pre","Post"))
boxplot + beeswarm
> install.packages("beeswarm")
> library("beeswarm")
> PrePost <- test[,c("Pre",“Post")]
> boxplot(pretest, posttest, names=c("PRE", "POST"))
> beeswarm(PrePost, add=TRUE)
おわりに
のススメ
• すべての処理・分析が R のみで完結
• <-> Editor + Excel (+ UNIX) + R + なんやかんや
• プログラミングの基礎養成に有効
• --> Python, Perl, ... どこでも使える
• 作図が美しい(+Mac ならフォントも)
• Excel の作図は一般に (‘A`)ヴァ-
のススメ
• データの取り扱い方に用心する
• Excel に任せっきりとしない
• データの処理過程をはっきりさせる
• Excel に任せっきりにしない
• データの分布をよく観察する
• Excel に任せっきりにしない
のススメ
参考文献
参考文献(続)
Enjoy !
twitter: @sakaue
!
e-mail: tsakaue<AT>hiroshima-u.ac.jp

HiRoshimaR3_IntroR