nagoya.r #11 入門者講習

106
Nagoya.R #11 入門者講習 名古屋大学大学院 川口 勇作 [email protected] 於:名古屋大学大学院国際開発研究科 2013/12/7

Upload: yusaku-kawaguchi

Post on 29-May-2015

1.369 views

Category:

Education


3 download

DESCRIPTION

Nagoya.R #11にて使用したスライドを一部改変したものです。 Ustream中継(録画)はこちらから http://www.ustream.tv/recorded/41452159

TRANSCRIPT

Page 1: Nagoya.R #11 入門者講習

Nagoya.R #11

入門者講習

名古屋大学大学院

川口 勇作 [email protected]

於:名古屋大学大学院国際開発研究科

2013/12/7

Page 2: Nagoya.R #11 入門者講習

自己紹介

•川口 勇作 (KAWAGUCHI, Yusaku)

–所属:名古屋大学大学院

–コンピュータ支援言語教育について

勉強中

–Nagoya.RのUstream中継担当

–R利用歴:まだ半年

Page 3: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 4: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 5: Nagoya.R #11 入門者講習

とは何か

• 統計処理のためのプログラミング言語

• 無償+オープンソースのソフトウェア

Page 6: Nagoya.R #11 入門者講習

のよい点

• 無償!(SPSSは約10万円)

• 豊富な種類の統計処理!

• 美しいグラフィックス!

Page 7: Nagoya.R #11 入門者講習

うおぉぉぉぉぉぉぉ!!

AB

CD

0.0 0.2 0.4 0.6 0.8 1.0

Score

Page 8: Nagoya.R #11 入門者講習

るおぉぉぉぉぉぉぉ!!

-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

Page 9: Nagoya.R #11 入門者講習

WRRRYYYYYYYY!! TOEIC

0.0 1.0 2.0

-0.15 0.19

-1.0 0.0

-0.04 0.07

2.0 3.0 4.0

0.37 -0.16

0.1 0.3

0.02 0.31

1.0 2.5 4.0

0.16 0.57

1.0 2.5 4.0

0.35 0.23

2.0 3.0 4.0

500

800

0.16

0.0

1.5

語長効果

-0.01 0.25 -0.14 -0.24 0.49 0.50 0.12 -0.03 -0.07 -0.24 0.21 0.05

頻度効果

-0.21 0.17 0.08 0.04 0.12 0.21 0.02 0.01 0.05 -0.01

-1.0

0.0

-0.12

-1.0

0.5 親密度効果

0.16 0.00 -0.05 0.20 0.37 0.26 0.22 0.14 0.18 0.13

心像性効果

0.22 -0.21 0.11 0.34 0.16 -0.14 0.18 0.23

-0.5

0.5

0.23

2.0

3.5 弁別力

-0.07 -0.07 0.17 -0.18 -0.05 -0.06 0.05 0.04

反応時間

0.66 -0.26 -0.27 -0.18 -0.29 0.19

600

1200

-0.23

0.1

0.3

自動化係数

0.05 -0.05 0.02 -0.06 0.19 -0.16

読む

0.35 0.15 0.13 0.26

2.0

3.5

0.44

1.0

3.0 書く

0.38 0.53 0.20 0.41

聞く

0.64 0.10

13

5

0.09

1.0

3.0 話す

0.03 0.27

文法

13

5

0.48

500 700 900

2.0

3.5

-1.0 0.0 -0.5 0.5 600 1000 2.0 3.0 4.0 1 2 3 4 5 1 2 3 4 5

語彙

Page 10: Nagoya.R #11 入門者講習

のつらい点

• 文字ベースの操作

–プログラミング技術が多少必要に

• いろいろな知識が必要

–英語・統計について

Page 11: Nagoya.R #11 入門者講習

ウゲーッ

Page 12: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 13: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 14: Nagoya.R #11 入門者講習

まず

インストール

Page 15: Nagoya.R #11 入門者講習

のインストール

1. http://www.r-project.org/にア

クセス

2. “download R” をクリック

3. Japanの中から,CRAN1つを選択

4. 使っているOS のリンクをクリック

5. バージョンを選択しダウンロード

Page 16: Nagoya.R #11 入門者講習
Page 17: Nagoya.R #11 入門者講習
Page 18: Nagoya.R #11 入門者講習
Page 19: Nagoya.R #11 入門者講習
Page 20: Nagoya.R #11 入門者講習

<- 過去のバージョンのものはこちらから!

Page 21: Nagoya.R #11 入門者講習

のインストール

6. ダウンロードしたファイルを

ダブルクリックで開く

7. ダイアログの指示にしたがって進

める

Page 22: Nagoya.R #11 入門者講習

のアップデート

1. http://www.r-project.org/にア

クセス

2. 新しいバージョンが出ているか確

3. 新規にインストール用ファイルを

ダウンロードしてインストール

Page 23: Nagoya.R #11 入門者講習

のアップデート

• 注意

–重大なセキュリティ上の問題がない限り,むやみに更新しない

•パッケージ(付加機能)の動作不良の回避

• Tips:Windows版は新旧共生可能

Page 24: Nagoya.R #11 入門者講習

のアンインストール

• Windows

– コンパネ>プログラムの追加と削除(一般的なアプリケーションのアンインストールの手順と同じ)

• Mac OS X

– /Applications にある アイコンと/Library の中のFrameworks にある R. framework を削除

Page 25: Nagoya.R #11 入門者講習

起動・終了 させましょう

Page 26: Nagoya.R #11 入門者講習

• Windows

– スタート -> プログラム -> R -> お好みの

バージョンを起動

• Mac OS X

– /Application内のRアイコンをクリック

-> Rの「コンソール」が表示されるか確認してください

の起動

Page 27: Nagoya.R #11 入門者講習
Page 28: Nagoya.R #11 入門者講習

• WindowsもMac OS Xも

–「閉じる」ボタンでもいいんだけど…

–「q()」と入力(これが終了コマンド)

• ウィンドウが消えてR終了

–作業スペースの保存はしないでください

の終了

Page 29: Nagoya.R #11 入門者講習

• まずは「help()」を実行!

– () の中に調べたい語句を入れる

• 以下のサイトも…

– 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)

– Rによる統計処理 (http://aoki2.si.gunma-u.ac.jp/R/)

で困ったときは…

Page 30: Nagoya.R #11 入門者講習

まとめ

• は統計ソフト

• 無償×いろんな統計×美しい作図

• 困ったら色々調べてみる

Page 31: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 32: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 33: Nagoya.R #11 入門者講習

関数・変数は

Rの命

Page 34: Nagoya.R #11 入門者講習

以下

”>”から始まる式を

コンソールに

入力していってください

”>”は入力 しなくていいです

Page 35: Nagoya.R #11 入門者講習

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 を終了します。

>|

<- ここから入力

Page 36: Nagoya.R #11 入門者講習

四則演算

• 式を入力し[Enter]を押す

> 3+5 [Enter]

> 10-3 [Enter]

> 2*3 [Enter]

> 100/20 [Enter]

> (12+34-56)*78/90 [Enter]

-8.666667

Page 37: Nagoya.R #11 入門者講習

累乗

• 「 ^ 」を使う

> 10^2

10の2乗

> 100^2

100の2乗

Page 38: Nagoya.R #11 入門者講習

ちょっと高度に

• 次の違いは?

> 100^1/2

1001/2

> 100^(1/2)

100(1/2)

Page 39: Nagoya.R #11 入門者講習

おさらい

•足し算:+

•引き算:-

•掛け算:*

•割り算:/

•累乗:^

Page 40: Nagoya.R #11 入門者講習

これまでのは

単なる計算式

Page 41: Nagoya.R #11 入門者講習

これから

関数 というものを使います

Page 42: Nagoya.R #11 入門者講習

関数とは?

• 指定した値に対して何らかの処理をして結果を返すもの

• には多数の関数がある

• q() や help() も関数 –()の中に値を入れる

Page 43: Nagoya.R #11 入門者講習

sqrt():平方根

> sqrt(2)

1.414214

> sqrt(144)

12

> sqrt(104976)

324

Page 44: Nagoya.R #11 入門者講習

コンソールで「+」が出たら

• 入力中に誤って[Enter]を押すと,

待機状態を示す「+」が出る

–[STOP]ボタン ,もしくは[Esc]キーでキャンセル

> sqrt(

+

Page 45: Nagoya.R #11 入門者講習

次に

変数 というものを使います

Page 46: Nagoya.R #11 入門者講習

変数とは?

• 変数とは1つ以上の値をまとめ

ていれておく「箱」のこと

• ではベクトルとも呼ばれ

複数の値を1つにまとめたもの

を指す

Page 47: Nagoya.R #11 入門者講習

変数とは?

• 統計処理を行うには複数の値をまとめて扱うことが必要 –それを使い回すために変数を使う

• 変数に数値を入れることを

「代入」という

Page 48: Nagoya.R #11 入門者講習

変数に数値を入れる

• 変数の名前は”hako”

> hako <- c(1,2,3,4,5)

– c()関数:conbine(cf. https://twitter.com/langstat/status/193707940518170625)

値を1つにまとめる関数

• 代入したら中身を確認

> hako

Page 49: Nagoya.R #11 入門者講習

“<-”って?

• > hako <- c(1,2,3,4,5)

の”<-”は

左向きの矢印(←) を表現

※「=」でも置き換え可能だが推奨されない

Page 50: Nagoya.R #11 入門者講習

履歴機能と補完機能

• 履歴:上下の矢印キー

–今まで入力したものが記録されている

• 補完:[Tab]キー

–一部を入力すると入力履歴や関数から予測して補完してくれる

Page 51: Nagoya.R #11 入門者講習

現在 ”hako”という名前の

変数の中に

1から5までの数字が

まとめて入っている

状態です

Page 52: Nagoya.R #11 入門者講習

使い回して みましょう

Page 53: Nagoya.R #11 入門者講習

以下の関数を実行

> sqrt(hako)

> log(hako)

Page 54: Nagoya.R #11 入門者講習

これだけ入力するのと

どっちが楽ですか? > sqrt(1)

> sqrt(2)

> sqrt(3)

> sqrt(4)

> sqrt(5)

> log(1)

> log(2)

> log(3)

> log(4)

> log(5)

Page 55: Nagoya.R #11 入門者講習

もっと 使い回して みましょう

Page 56: Nagoya.R #11 入門者講習

以下の関数で実行

• 基本統計量を求める:summary()

• 度数分布表を作る:table()

• 合計する:sum()

• データの個数を求める:length()

Page 57: Nagoya.R #11 入門者講習

以下の関数で実行

• 平均値を求める:mean()

• 最大値を求める:max()

• 最小値を求める:min()

• 中央値を求める:median()

• 標準偏差を求める:sd()

Page 58: Nagoya.R #11 入門者講習

ここまでのまとめ

• Rは「関数」と「変数」が命

• 関数を使って数値を処理

• q(), help(), sqrt(), log(), c()

• 変数を使って一括処理!

Page 59: Nagoya.R #11 入門者講習

今日は

メモを頼りに

実行できればOK

Page 60: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 61: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 62: Nagoya.R #11 入門者講習

例えば…

身長 体重

A 180 75

B 170 65

C 165 60

D 175 70

E 190 80

Page 63: Nagoya.R #11 入門者講習

行列とは?

• 数値が縦横に並べられたもの

–身長と体重

–勉強時間とテストの得点

–年齢と元カレ・元カノの数

Page 64: Nagoya.R #11 入門者講習

1 2 3

4 5 6

7 8 9

Page 65: Nagoya.R #11 入門者講習
Page 66: Nagoya.R #11 入門者講習

1 2 3

4 5 6

7 8 9

Page 67: Nagoya.R #11 入門者講習

1 2 3

4 5 6

7 8 9

Page 68: Nagoya.R #11 入門者講習

1 2 3

4 5 6

7 8 9

Page 69: Nagoya.R #11 入門者講習
Page 70: Nagoya.R #11 入門者講習

1 2 3

4 5 6

7 8 9

Page 71: Nagoya.R #11 入門者講習

1 2 3

4 5 6

7 8 9

Page 72: Nagoya.R #11 入門者講習

1 2 3

4 5 6

7 8 9

Page 73: Nagoya.R #11 入門者講習

行列を作る関数

•matrix()関数 –matrix(要素, 行の数, 列の数)

Page 74: Nagoya.R #11 入門者講習

このデータで…

身長 体重

A 180 75

B 170 65

C 165 60

D 175 70

E 190 80

Page 75: Nagoya.R #11 入門者講習

行列を作ってみる

> karada <- matrix(c(180, 170, 165, 175, 190, 75, 65, 60, 70, 80), 5, 2)

1. c()関数で,数値を連結

2. matrix()関数で,5行2列の行列に変換

3. “karada”という名の変数に代入

4. > karada と入力して変数の中身を確認

Page 76: Nagoya.R #11 入門者講習

行列の要素を取り出す

1. 行列を作り変数に代入

2. 変数の中から見たい行や列を

指定

Page 77: Nagoya.R #11 入門者講習

行列の要素を取り出す

> demo <- matrix(1:30, nrow = 5, ncol = 6)

Page 78: Nagoya.R #11 入門者講習

行列の要素を取り出す

• 2行目を表示 -> demo[2,]

• 2列目を表示 -> demo[,2]

Page 79: Nagoya.R #11 入門者講習

行列の要素を取り出す

• 複数行・複数列をまとめて取り

出すときはc()関数を使う

Page 80: Nagoya.R #11 入門者講習

行列まとめ

• 横方向が行,縦方向が列

• matrix()関数で行列を作る

• 必要な要素を適宜取り出して値を確認

Page 81: Nagoya.R #11 入門者講習

数字だけじゃなくて

文字 も入れたいんだけど

Page 82: Nagoya.R #11 入門者講習

できます

Page 83: Nagoya.R #11 入門者講習

データフレーム

• 文字データや数字データを一緒くたにして並べたもの

• 関数を駆使して自力で作ることも

可能

だけど…

Page 84: Nagoya.R #11 入門者講習

できますけど…

• コマンドや文字をいちいち打ち込むのはしんどい!

• Excelなどの外部から楽にデータを読み込みたい!

-> できます

Page 85: Nagoya.R #11 入門者講習

外部データの読み込み

• read.table()関数

• read.delim()関数

• read.csv()関数

• 1つずつ解説します

Page 86: Nagoya.R #11 入門者講習

その前に…

• 作業フォルダの確認

–getwd()関数

•作業フォルダがわかったら,

「nagoyar11」フォルダの中身を

すべて作業フォルダ内に入れてください

Page 87: Nagoya.R #11 入門者講習

外部データの読み込み

• read.table()関数

–データフレーム形式のテキストを読み込む

read.table("ファイル名", header=T / F , sep="¥t" / ",")

Page 88: Nagoya.R #11 入門者講習

外部データの読み込み

• read.table()関数

–headerとは「見出し行」のこと

•Tならあり,Fならなし

–sepとは「区切り文字」のこと

• "¥t" ならタブ,"," ならカンマ

Page 89: Nagoya.R #11 入門者講習

外部データの読み込み

• read.delim()関数

–タブで区切られたテキストを読み込む

–タブ区切りテキスト専用

–read.delim("ファイル名", header=T / F)

Page 90: Nagoya.R #11 入門者講習

外部データの読み込み

• read.csv()関数

–カンマで区切られたテキストを

読み込む

–カンマ区切りテキスト専用

–read.csv("ファイル名", header=T / F)

Page 91: Nagoya.R #11 入門者講習

外部データの読み込み

• ファイル選択ダイアログからの

読み込み

–“ファイル名”のところに…

file.choose()と入力

Page 92: Nagoya.R #11 入門者講習

外部データの読み込み

• クリップボードからの読み込み

–“ファイル名”のところに…

•Win & Linux:"clipboard"

•Mac:pipe("pbpaste")

…と入力

Page 93: Nagoya.R #11 入門者講習

演習1

• Excelからクリップボードにコピーした,見出し行のあるデータを読み込みましょう –Win & Linuxの場合:

> read.table("clipboard", header=T)

– Macの場合:

> read.table(pipe"pbpaste", header=T)

Page 94: Nagoya.R #11 入門者講習

演習2

• ファイル選択ダイアログから選択

した見出し行のないタブ区切りテ

キストを読み込みましょう

> read.table(file.choose(), header=F, sep="¥t")

> read.delim(file.choose(), header=F)

Page 95: Nagoya.R #11 入門者講習

演習3

• 作業フォルダ内の,見出し行のあるカンマ区切りテキストを読み込ん

で”karada2”という変数に代入してみましょう

> karada2 <- read.table(“karada.csv”, header=T, sep=“,”)

> karada2 <- read.csv("karada.csv", header=T)

Page 96: Nagoya.R #11 入門者講習

せっかく代入したので

使ってみましょう

• table(karada2[,1]) –度数分布を確認する

• mean(karada2[,2]) –平均値を求める

• hist(karada2[,2]) –ヒストグラムを描く

Page 97: Nagoya.R #11 入門者講習

行列の要素を取り出す

• 2行目を表示 : demo[2,]

• 2列目を表示 : demo[,2]

Page 98: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 99: Nagoya.R #11 入門者講習

本日のメニュー

1. Rとは何か

2. Rの基本操作

3. 関数と変数はRの命

4. 行列を作ろう

5. あっという間に作図の巻

Page 100: Nagoya.R #11 入門者講習

あっという間に作図の巻

• ヒストグラム

• 散布図

• 箱ひげ図

• さっそくやってみましょう

Page 101: Nagoya.R #11 入門者講習

ヒストグラムの作図

• hist()関数

–身長の分布を確認しましょう

> height <- c(160, 160, 160, 165, 170, 170,

170, 170, 175, 175, 180, 185, 185, 185, 190)

> hist(height)

Page 102: Nagoya.R #11 入門者講習

散布図の作図

• plot()関数 –TOEICスコアと英作文の語数の相関を確認しましょう

> score <- c(600, 500, 720, 430, 500, 550, 430, 500, 850, 400)

> words <- c(340, 190, 465, 170, 130, 225, 140, 310, 580, 120)

> plot(score, words)

Page 103: Nagoya.R #11 入門者講習

箱ひげ図の作図

• boxplot()関数 –英作文の語数の幅を比較しましょう

> nns <- c(350, 285, 315, 340, 210, 185,

120, 740, 425, 155) > ns <- c(365, 570, 645, 540, 645, 665,

880, 550, 410, 585) > boxplot(nns, ns, names = c("NNS",

"NS"))

Page 104: Nagoya.R #11 入門者講習

作図まとめ

• hist()関数

• plot()関数

• boxplot()関数

• たったこれだけで美しい作図

Page 105: Nagoya.R #11 入門者講習

References

天野修一(2013)「入門者講習」 Nagoya.R #10. 名古屋大学.

阪上辰也(2012)「入門者講習」 Nagoya.R #8. 名古屋大学. Retrieved from http://www.slideshare.net/sakaue/nagoyar-8

Page 106: Nagoya.R #11 入門者講習

川口 勇作 [email protected]

長時間 お疲れ様でした