Nagoya.R #14 入門者講習

Post on 23-Jan-2018

673 views 0 download

Transcript of Nagoya.R #14 入門者講習

Nagoya. #14

入門者講習

川口 勇作

y.kawaguchi@nagoya-u.jp

@kwsk3939

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

2015/10/17

はじめに…

• 本日は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を使いましょう