Upload
yusaku-kawaguchi
View
673
Download
0
Embed Size (px)
Citation preview
はじめに…
• 本日はNagoya.R #14にお越しいただきありがとうございます
• なんちゃって運営代表の川口です
• これから約1時間半の入門者講習
–できる方は周りのサポートか睡眠学習、発表準備のお時間に
自己紹介
• 川口 勇作 (KAWAGUCHI, Yusaku)
–Nagoya.Rの(なんちゃって)運営代表
–R利用歴:2年ちょっと
–専門は外国語教育学
• いわゆる文系人間
• 所詮エンドユーザの域を出ない
この講習の
• 対象
–Rを(全然~ほとんど)さわったことがない人
• 到達目標
–Rを使う上で必要最低限の知識・技術を習得する
本日のメニュー
• Rとは?
• インストールから基本操作
• 関数と変数について
• 作図演習
• パッケージのインストール
そもそも
って何?
とは
• 統計処理のためのプログラミング言語
• 無償+オープンソースのソフトウェア
• いわゆる「統計ソフト」
のよいところ
• 入会費年会費完全永久無料
• 追加機能を入れることでたくさんの統計処理が可能
• グラフがきれい
–スクリプトを残しておけば簡単に再現やシェアが可能
AB
CD
0.0 0.2 0.4 0.6 0.8 1.0
Score
-3 -2 -1 0 1 2 3
0.0
0.2
0.4
0.6
0.8
1.0
1.2
Cohen's d
De
nsity
0.3
-0.35
-0.38
-0.47
0.52
0.53
-0.56
-0.58
0.62
0.74
-0.9
LambdaFit
Intercept
slope
R2
Token
GI
Rate
のヤなところ
• 当然のように必要とされるコンピュータ技術
• 当然のように要求されるプログラミングの知識
• 当然のように現れる英語たち
Ouch...
本日のメニュー
• Rとは?
• インストールから基本操作
• 関数と変数について
• 作図演習
• パッケージのインストール
まずインストール
のインストール
• http://www.r-project.org/にアクセス
– “download R” をクリック
– Japanの中から,CRAN1つを選択
• CRAN:ミラーサイトのこと
–使っているOS のリンクをクリック
–バージョンを選択しダウンロード
<-過去のバージョンのものはこちらから!
のインストール
• ダウンロードしたファイルをダブルクリックで開く
• ダイアログの指示にしたがって進める
–基本的には「次へ」の連打でOK
のアップデート
• http://www.r-project.org/にアクセス
• 新しいバージョンが出ているか確認
• 新規にインストール用ファイルをダウンロードしてインストール
• 要するに手動
のアップデート
• どういうときにするのがいい?
–使いたいパッケージ(追加機能)が古いバージョンでは使えない場合
–セキュリティに問題がある場合
–(Windows版では)新旧のバージョンが併存可能
のアップデート
• 注意点
–今まで入れたパッケージは基本的に入れなおし必須
–必要のない場合はむやみやたらにアップデートしないほうが良い
起動・終了させましょう
の起動
• Windows
–スタート > プログラム > R > お好みのバージョンを起動
• Mac OS X
– /Application内のRアイコンをクリック
• Rの「コンソール」が表示されるか確認してください
の終了
• WindowsもMac OS Xも
–普通の「閉じる」ボタンか、
–q()と入力(これが終了コマンド)
–作業スペースの保存をするかどうか聞かれる
• とりあえず「いいえ」を選んでください
で困ったときは…
• とりあえずググる
• 以下のサイトを調べましょう
– seekR (http://seekr.jp/)
– RjpWiki (http://www.okada.jp.org/RWiki/)
– R-Tips (http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html)
– Rによる統計処理 (http://aoki2.si.gunma-u.ac.jp/R/)
• help関数というものもあります(後述)
まとめ
• は統計ソフト
• 無償でいろんな統計が使えてきれいな図が描けます
• 困ったときはとりあえずググりましょう
の基本操作
以下”>”から始まる式を
コンソールに入力していってください
”>”は入力しなくていいです
R version 3.0.1 (2013-05-16) -- "Good Sport"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: i386-w64-mingw32/i386 (32-bit)
R は、自由なソフトウェアであり、「完全に無保証」です。一定の条件に従えば、自由にこれを再配布することができます。配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。
R は多くの貢献者による共同プロジェクトです。詳しくは 'contributors()' と入力してください。また、R や R のパッケージを出版物で引用する際の形式については'citation()' と入力してください。
'demo()' と入力すればデモをみることができます。'help()' とすればオンラインヘルプが出ます。'help.start()' で HTML ブラウザによるヘルプがみられます。'q()' と入力すれば R を終了します。
>| <-ここから入力入力している部分は赤く表示されます
四則演算
• 以下の記号を使います
• 足し算:+
• 引き算:-
• 掛け算:*
• 割り算:/
• 累乗:^
四則演算
• 式を入力して、 Enter を押す
> 3+5
> 10-3
> 2*3
> 100/20
> (12+34-56)*78/90
四則演算
• 式を入力して、 Enter を押す
> 3+5
> 10-3
> 2*3
> 100/20
> (12+34-56)*78/90
8
7
6
5
-8.666667
累乗
• 「 ^ 」を使う
> 10^2
#10の2乗
> 100^2
#100の2乗
ちょっと高度に
• 次の違いは?
> 100^1/2
> 100^(1/2)
ちょっと高度に
• 次の違いは?
• カッコの有無で処理が異なることに注意
> 100^1/2 #1001/2
50
> 100^(1/2) #100(1/2)
10
まとめ
• 命令を打ち込んでEnter!
• それだけです
本日のメニュー
• Rとは?
• インストールから基本操作
• 関数と変数について
• 作図演習
• パッケージのインストール
関数・変数
関数・変数
• これまで扱ってきたものは単なる計算式
–これだけでは高度な計算ができない
• より高度な処理をするために、関数・変数というものを使います
関数とは?
• 指定した値(引数)に対して何らかの処理をして結果を返すもの
• Rには多数の関数がある
–q() や help() も関数
– ()の中に引数を入れる
とりあえずやってみましょう
sqrt:平方根
> sqrt(2)
> sqrt(144)
> sqrt(104976)
sqrt:平方根
> sqrt(2)
1.414214
> sqrt(144)
12
> sqrt(104976)
324
コンソールで「+」が出たら
• 入力中に誤って[Enter]を押すと,待機状態を示す「+」が出る
–そのまま入力を続けてもらって大丈夫です
–気になる人は、[STOP]ボタン 、もしくは[Esc]キーでキャンセルしてください
> sqrt(
+
変数
変数とは?
• 変数とは1つ以上の値をまとめていれておく「箱」のようなもの
• 複数の値を1つにまとめたものを指す
変数とは?
• 統計処理を行うには複数の値をまとめて扱うことが必要
–それを使い回すために変数を使う
• 変数に数値を入れることを「代入」という
1 2345
変数に数値を入れる
• 変数の名前を”hako”にしましょう
c関数:値を1つにまとめる関数
–まとめた値を”hako”という変数に代入
–代入したら中身を確認
> hako <- c(1,2,3,4,5)
> hako
“<-”って?
> hako <- c(1,2,3,4,5)
の”<-”は左向きの矢印(←)を表現
–矢印の根本の値を、矢印の先にある変数に代入します
–矢印は反対方向でもOK
> c(1,2,3,4,5) -> hako
関数を実行
• 現在 ”hako”という名前の変数の中に1から5までの数字がまとめて入っている状態です
1 2345
以下の関数を実行
> sqrt(hako)
以下の関数を実行
> sqrt(hako)
[1] 1.000000 1.414214 1.732051
2.000000 2.236068
これだけ入力するのと一緒
> sqrt(1)
> sqrt(2)
> sqrt(3)
> sqrt(4)
> sqrt(5)
履歴機能と補完機能
• 履歴:上下の矢印キー
–今まで入力したものが記録されている
• 補完:Tabキー
–関数の一部を入力してTabキーを押すと、補完してくれる
他にも
• 基本統計量を求める:summary
• 度数分布表を作る:table
• 合計する:sum
• データの個数を求める:length
他にも
• 平均値を求める:mean
• 最大値を求める:max
• 最小値を求める:min
• 中央値を求める:median
• 標準偏差を求める:sd
他にも
• help関数
–help(調べたい関数の名前)
–関数の説明が出てくる(英語)
• 英語が得意な方向け
ここまでのまとめ
• 関数を使って数値を処理
–c関数、sqrt関数、help関数などいろいろな関数
– ()の中に引数を入れる
• 値、変数など
• 変数を使って、変数の中身を一気に処理
行列を作る
例えば…
身長 体重
A 180 75
B 170 65
C 165 60
D 175 70
E 190 80
行列とは?
• 数値が縦横に並べられたもの
–身長と体重
–勉強時間とテストの得点
–ラーメンを食べる頻度と血圧
–縦横にベクトルを並べたもの
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
こんなデータ
身長 体重
A 180 75
B 170 65
C 165 60
D 175 70
E 190 80
行列を作る関数
• matrix関数
–matrix(要素, 行の数, 列の数)
• 要素:行列の中身
–さっきの表を行列にするには
• 要素はc関数でベクトルの形にする
> matrix(c(180,170,165,175,190,7
5,65,60,70,80),5,2)
行列の要素を取り出す
• まず作った行列を変数に代入
• 変数の中から見たい行や列を指定
> karada <- matrix(c(180,170,165,
175,190,75,65,60,70,80),5,2)
行列の要素を取り出す
• 2行目を表示 -> karada[2,]
• 2列目を表示 -> karada[,2]
> karada[2,]
[1] 170 65
> karada[,2]
[1] 75 65 60 70 80
こんなイメージ
[,1] [,2] [,3] [,4] [,5]
[1,]
[2,]
[3,]
[4,]
行列の要素を取り出す
• 複数行・複数列をまとめて取り出すときはc()関数を使う
> karada[c(2,4),]
[,1] [,2]
[1,] 170 65
[2,] 175 70
行列まとめ
• 横方向が行,縦方向が列
• matrix関数で行列を作る
• 必要な要素を適宜取り出して値を確認
ちょっと大きいデータheight wight
183 50
180 70
187 60
185 64
150 75
160 81
175 79
187 78
186 60
148 90
168 88
165 53
160 61
160 72
187 49
188 55
174 55
177 70
176 52
172 70
174 76
172 50
164 63
180 69
170 81
160 76
175 74
151 58
155 71
182 58
作ることもできるけど…
• コマンドや文字を大量に打ち込むのはダルいから、Excelから楽にデータを読み込みたい
• 行列って数値しか使えないのでは?文字は読み込めないんじゃないの?
-> できます
データフレーム形式
• 文字データや数字データを一緒くたにして並べたもの
• 今回はExcelファイルからデータを、データフレーム形式でRに読み込む方法を実演します
外部データの読み込み
• read.table 関数
• read.delim 関数
• read.csv 関数
• いろいろあります
外部データの読み込み
• read.table()関数
–データフレーム形式のテキストを読み込む
• read.table("ファイル名", header=T/ F , sep="\t" / ",")
外部データの読み込み
• read.table()関数
–headerとは「見出し行」のこと
• Tならあり,Fならなし
–sepとは「区切り文字」のこと
• "\t" ならタブ,"," ならカンマ
外部データの読み込み
• クリップボードからの読み込み
– “ファイル名”のところに…
• Win & Linuxの場合
–"clipboard"
• Macの場合
–pipe("pbpaste“)
演習• 見出し行のあるデータを、Excelからクリップ
ボードにコピーして読み込んで、「dat」という名前の変数に代入してみましょう
–Win & Linuxの場合
–Macの場合
> dat <- read.table("clipboard", header=T)
> dat <- read.table(pipe("pbpaste“), header=T)
変数を使ってみましょう
• 度数分布を確認する
• 平均値を求める
> table(dat[,1])
> mean(dat[,2])
本日のメニュー
• Rとは?
• インストールから基本操作
• 関数と変数について
• 作図演習
• パッケージのインストール
今日はこういうのをやります
• ヒストグラム
• 散布図
• 箱ひげ図
• 蜂群図
–紙の配布資料もご参照ください
ヒストグラム(hist関数)
• ヒストグラムを描いてを描いて身長/体重の分布を見ましょう
–さきほどの練習で作ったdatを使います
> hist(dat[,1]) #身長のヒストグラム
> hist(dat[,2]) #体重のヒストグラム
Histogram of dat[, 1]
dat[, 1]
Fre
qu
en
cy
150 160 170 180 190
01
23
45
6
Histogram of dat[, 2]
dat[, 2]
Fre
qu
en
cy
50 60 70 80 90
01
23
4
散布図(plot関数)
• 散布図で相関関係を見ましょう
–Excelファイル内の(b)の範囲を読み込んで”dat2”という名の変数に代入してください
#Windowsの方
> dat2 <- read.table("clipboard”, header=T)
#Macの方
> dat2 <- read.table(pipe("pbpaste"), header=T)
> plot(dat2$score, dat2$words)
300 400 500 600 700 800 900 1000
15
02
00
25
03
00
35
0
dat2$score
da
t2$
wo
rds
箱ひげ図(boxplot関数)
• 箱ひげ図でばらつきを見ましょう
–Excelファイル内の(c)の範囲を読み込んで”dat3”という名の変数に代入してください
#Windowsの方
> dat3 <- read.table("clipboard”, header=T)
#Macの方
> dat3 <- read.table(pipe("pbpaste"), header=T)
> boxplot(dat3)
NNS NS
15
02
00
25
03
00
35
04
00
蜂群図(beeswarm関数)
• 蜂群図(beeswarm plot)を箱ひげ図に重ね描きして、一人ひとりのばらつきを把握する
–dat3をそのまま使います
–さっき描いた箱ひげ図はそのままで以下のコードを入力してください
> beeswarm(dat3, add=T)
# addは重ね描きをするオプションです
nns ns
15
02
00
25
03
00
35
04
00
描いた図は
• 右クリックでコピー可能
–メタファイル(オススメ)
• きれい
• PDFにしたりするとたまにバグる
–ビットマップ
• きれいじゃない
• Excel上など、適当なところに貼り付けておいておくことも可能
まとめ
• 作図は、
–事前にデータを変数に代入
–変数を引数にして、関数を実行
–描き終わった後は、右クリックでコピー!
本日のメニュー
• Rとは?
• インストールから基本操作
• 関数と変数について
• 作図演習
• パッケージのインストール
さっき
• beeswarm関数が読み込めない
–Rにはもともと入っていない機能のため
–後から追加することが可能(もちろん無料)
–この追加機能一般のことを、Rではパッケージと呼びます
パッケージのインストール
• メニューを使う方法
–Rのメニューの中の「パッケージ」>「パッケージのインストール」> ほしいパッケージを選択
• コードを使う方法
– install.packages(“ほしいパッケージ名”)
みんな で
みんないいみんなでRを使いましょう