106
Nagoya. #14 入門者 講習 川口 勇作 y.kawaguchi@nagoya - u.jp @kwsk3939 於:名古屋大学東山キャンパス 2015/10/17

Nagoya.R #14 入門者講習

Embed Size (px)

Citation preview

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

Nagoya. #14

入門者講習

川口 勇作

[email protected]

@kwsk3939

於:名古屋大学東山キャンパス

2015/10/17

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

はじめに…

• 本日はNagoya.R #14にお越しいただきありがとうございます

• なんちゃって運営代表の川口です

• これから約1時間半の入門者講習

–できる方は周りのサポートか睡眠学習、発表準備のお時間に

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

自己紹介

• 川口 勇作 (KAWAGUCHI, Yusaku)

–Nagoya.Rの(なんちゃって)運営代表

–R利用歴:2年ちょっと

–専門は外国語教育学

• いわゆる文系人間

• 所詮エンドユーザの域を出ない

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

この講習の

• 対象

–Rを(全然~ほとんど)さわったことがない人

• 到達目標

–Rを使う上で必要最低限の知識・技術を習得する

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

本日のメニュー

• Rとは?

• インストールから基本操作

• 関数と変数について

• 作図演習

• パッケージのインストール

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

そもそも

って何?

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

とは

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

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

• いわゆる「統計ソフト」

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

のよいところ

• 入会費年会費完全永久無料

• 追加機能を入れることでたくさんの統計処理が可能

• グラフがきれい

–スクリプトを残しておけば簡単に再現やシェアが可能

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

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

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

のヤなところ

• 当然のように必要とされるコンピュータ技術

• 当然のように要求されるプログラミングの知識

• 当然のように現れる英語たち

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

Ouch...

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

本日のメニュー

• Rとは?

• インストールから基本操作

• 関数と変数について

• 作図演習

• パッケージのインストール

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

まずインストール

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

のインストール

• http://www.r-project.org/にアクセス

– “download R” をクリック

– Japanの中から,CRAN1つを選択

• CRAN:ミラーサイトのこと

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

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

Page 15: Nagoya.R #14 入門者講習
Page 16: Nagoya.R #14 入門者講習
Page 17: Nagoya.R #14 入門者講習
Page 18: Nagoya.R #14 入門者講習
Page 19: Nagoya.R #14 入門者講習

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

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

のインストール

• ダウンロードしたファイルをダブルクリックで開く

• ダイアログの指示にしたがって進める

–基本的には「次へ」の連打でOK

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

のアップデート

• http://www.r-project.org/にアクセス

• 新しいバージョンが出ているか確認

• 新規にインストール用ファイルをダウンロードしてインストール

• 要するに手動

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

のアップデート

• どういうときにするのがいい?

–使いたいパッケージ(追加機能)が古いバージョンでは使えない場合

–セキュリティに問題がある場合

–(Windows版では)新旧のバージョンが併存可能

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

のアップデート

• 注意点

–今まで入れたパッケージは基本的に入れなおし必須

–必要のない場合はむやみやたらにアップデートしないほうが良い

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

起動・終了させましょう

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

の起動

• Windows

–スタート > プログラム > R > お好みのバージョンを起動

• Mac OS X

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

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

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

の終了

• WindowsもMac OS Xも

–普通の「閉じる」ボタンか、

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

–作業スペースの保存をするかどうか聞かれる

• とりあえず「いいえ」を選んでください

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

で困ったときは…

• とりあえずググる

• 以下のサイトを調べましょう

– 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関数というものもあります(後述)

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

まとめ

• は統計ソフト

• 無償でいろんな統計が使えてきれいな図が描けます

• 困ったときはとりあえずググりましょう

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

の基本操作

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

以下”>”から始まる式を

コンソールに入力していってください

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

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

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 33: Nagoya.R #14 入門者講習

四則演算

• 以下の記号を使います

• 足し算:+

• 引き算:-

• 掛け算:*

• 割り算:/

• 累乗:^

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

四則演算

• 式を入力して、 Enter を押す

> 3+5

> 10-3

> 2*3

> 100/20

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

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

四則演算

• 式を入力して、 Enter を押す

> 3+5

> 10-3

> 2*3

> 100/20

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

8

7

6

5

-8.666667

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

累乗

• 「 ^ 」を使う

> 10^2

#10の2乗

> 100^2

#100の2乗

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

ちょっと高度に

• 次の違いは?

> 100^1/2

> 100^(1/2)

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

ちょっと高度に

• 次の違いは?

• カッコの有無で処理が異なることに注意

> 100^1/2 #1001/2

50

> 100^(1/2) #100(1/2)

10

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

まとめ

• 命令を打ち込んでEnter!

• それだけです

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

本日のメニュー

• Rとは?

• インストールから基本操作

• 関数と変数について

• 作図演習

• パッケージのインストール

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

関数・変数

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

関数・変数

• これまで扱ってきたものは単なる計算式

–これだけでは高度な計算ができない

• より高度な処理をするために、関数・変数というものを使います

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

関数とは?

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

• Rには多数の関数がある

–q() や help() も関数

– ()の中に引数を入れる

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

とりあえずやってみましょう

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

sqrt:平方根

> sqrt(2)

> sqrt(144)

> sqrt(104976)

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

sqrt:平方根

> sqrt(2)

1.414214

> sqrt(144)

12

> sqrt(104976)

324

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

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

• 入力中に誤って[Enter]を押すと,待機状態を示す「+」が出る

–そのまま入力を続けてもらって大丈夫です

–気になる人は、[STOP]ボタン 、もしくは[Esc]キーでキャンセルしてください

> sqrt(

+

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

変数

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

変数とは?

• 変数とは1つ以上の値をまとめていれておく「箱」のようなもの

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

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

変数とは?

• 統計処理を行うには複数の値をまとめて扱うことが必要

–それを使い回すために変数を使う

• 変数に数値を入れることを「代入」という

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

1 2345

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

変数に数値を入れる

• 変数の名前を”hako”にしましょう

c関数:値を1つにまとめる関数

–まとめた値を”hako”という変数に代入

–代入したら中身を確認

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

> hako

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

“<-”って?

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

の”<-”は左向きの矢印(←)を表現

–矢印の根本の値を、矢印の先にある変数に代入します

–矢印は反対方向でもOK

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

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

関数を実行

• 現在 ”hako”という名前の変数の中に1から5までの数字がまとめて入っている状態です

1 2345

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

以下の関数を実行

> sqrt(hako)

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

以下の関数を実行

> sqrt(hako)

[1] 1.000000 1.414214 1.732051

2.000000 2.236068

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

これだけ入力するのと一緒

> sqrt(1)

> sqrt(2)

> sqrt(3)

> sqrt(4)

> sqrt(5)

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

履歴機能と補完機能

• 履歴:上下の矢印キー

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

• 補完:Tabキー

–関数の一部を入力してTabキーを押すと、補完してくれる

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

他にも

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

• 度数分布表を作る:table

• 合計する:sum

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

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

他にも

• 平均値を求める:mean

• 最大値を求める:max

• 最小値を求める:min

• 中央値を求める:median

• 標準偏差を求める:sd

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

他にも

• help関数

–help(調べたい関数の名前)

–関数の説明が出てくる(英語)

• 英語が得意な方向け

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

ここまでのまとめ

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

–c関数、sqrt関数、help関数などいろいろな関数

– ()の中に引数を入れる

• 値、変数など

• 変数を使って、変数の中身を一気に処理

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

行列を作る

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

例えば…

身長 体重

A 180 75

B 170 65

C 165 60

D 175 70

E 190 80

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

行列とは?

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

–身長と体重

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

–ラーメンを食べる頻度と血圧

–縦横にベクトルを並べたもの

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

1 2 3

4 5 6

7 8 9

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

1 2 3

4 5 6

7 8 9

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

1 2 3

4 5 6

7 8 9

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

1 2 3

4 5 6

7 8 9

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

1 2 3

4 5 6

7 8 9

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

1 2 3

4 5 6

7 8 9

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

1 2 3

4 5 6

7 8 9

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

こんなデータ

身長 体重

A 180 75

B 170 65

C 165 60

D 175 70

E 190 80

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

行列を作る関数

• matrix関数

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

• 要素:行列の中身

–さっきの表を行列にするには

• 要素はc関数でベクトルの形にする

> matrix(c(180,170,165,175,190,7

5,65,60,70,80),5,2)

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

行列の要素を取り出す

• まず作った行列を変数に代入

• 変数の中から見たい行や列を指定

> karada <- matrix(c(180,170,165,

175,190,75,65,60,70,80),5,2)

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

行列の要素を取り出す

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

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

> karada[2,]

[1] 170 65

> karada[,2]

[1] 75 65 60 70 80

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

こんなイメージ

[,1] [,2] [,3] [,4] [,5]

[1,]

[2,]

[3,]

[4,]

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

行列の要素を取り出す

• 複数行・複数列をまとめて取り出すときはc()関数を使う

> karada[c(2,4),]

[,1] [,2]

[1,] 170 65

[2,] 175 70

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

行列まとめ

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

• matrix関数で行列を作る

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

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

ちょっと大きいデータ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

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

作ることもできるけど…

• コマンドや文字を大量に打ち込むのはダルいから、Excelから楽にデータを読み込みたい

• 行列って数値しか使えないのでは?文字は読み込めないんじゃないの?

-> できます

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

データフレーム形式

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

• 今回はExcelファイルからデータを、データフレーム形式でRに読み込む方法を実演します

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

外部データの読み込み

• read.table 関数

• read.delim 関数

• read.csv 関数

• いろいろあります

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

外部データの読み込み

• read.table()関数

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

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

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

外部データの読み込み

• read.table()関数

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

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

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

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

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

外部データの読み込み

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

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

• Win & Linuxの場合

–"clipboard"

• Macの場合

–pipe("pbpaste“)

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

演習• 見出し行のあるデータを、Excelからクリップ

ボードにコピーして読み込んで、「dat」という名前の変数に代入してみましょう

–Win & Linuxの場合

–Macの場合

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

> dat <- read.table(pipe("pbpaste“), header=T)

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

変数を使ってみましょう

• 度数分布を確認する

• 平均値を求める

> table(dat[,1])

> mean(dat[,2])

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

本日のメニュー

• Rとは?

• インストールから基本操作

• 関数と変数について

• 作図演習

• パッケージのインストール

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

今日はこういうのをやります

• ヒストグラム

• 散布図

• 箱ひげ図

• 蜂群図

–紙の配布資料もご参照ください

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

ヒストグラム(hist関数)

• ヒストグラムを描いてを描いて身長/体重の分布を見ましょう

–さきほどの練習で作ったdatを使います

> hist(dat[,1]) #身長のヒストグラム

> hist(dat[,2]) #体重のヒストグラム

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

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

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

散布図(plot関数)

• 散布図で相関関係を見ましょう

–Excelファイル内の(b)の範囲を読み込んで”dat2”という名の変数に代入してください

#Windowsの方

> dat2 <- read.table("clipboard”, header=T)

#Macの方

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

> plot(dat2$score, dat2$words)

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

300 400 500 600 700 800 900 1000

15

02

00

25

03

00

35

0

dat2$score

da

t2$

wo

rds

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

箱ひげ図(boxplot関数)

• 箱ひげ図でばらつきを見ましょう

–Excelファイル内の(c)の範囲を読み込んで”dat3”という名の変数に代入してください

#Windowsの方

> dat3 <- read.table("clipboard”, header=T)

#Macの方

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

> boxplot(dat3)

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

NNS NS

15

02

00

25

03

00

35

04

00

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

蜂群図(beeswarm関数)

• 蜂群図(beeswarm plot)を箱ひげ図に重ね描きして、一人ひとりのばらつきを把握する

–dat3をそのまま使います

–さっき描いた箱ひげ図はそのままで以下のコードを入力してください

> beeswarm(dat3, add=T)

# addは重ね描きをするオプションです

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

nns ns

15

02

00

25

03

00

35

04

00

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

描いた図は

• 右クリックでコピー可能

–メタファイル(オススメ)

• きれい

• PDFにしたりするとたまにバグる

–ビットマップ

• きれいじゃない

• Excel上など、適当なところに貼り付けておいておくことも可能

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

まとめ

• 作図は、

–事前にデータを変数に代入

–変数を引数にして、関数を実行

–描き終わった後は、右クリックでコピー!

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

本日のメニュー

• Rとは?

• インストールから基本操作

• 関数と変数について

• 作図演習

• パッケージのインストール

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

さっき

• beeswarm関数が読み込めない

–Rにはもともと入っていない機能のため

–後から追加することが可能(もちろん無料)

–この追加機能一般のことを、Rではパッケージと呼びます

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

パッケージのインストール

• メニューを使う方法

–Rのメニューの中の「パッケージ」>「パッケージのインストール」> ほしいパッケージを選択

• コードを使う方法

– install.packages(“ほしいパッケージ名”)

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

みんな で

みんないいみんなでRを使いましょう