Nagoya.R #12
入門者講習
名古屋大学大学院
川口 勇作
[email protected]
於:名古屋大学東山キャンパス
2014/12/6
はじめに…
• 本日はお寒い中Nagoya.R #12にお越しいただきありがとうございます
• これから約1時間半の入門者講習です
–退屈されないように頑張ります
–できる方は周りのサポートか睡眠学習の時間に
自己紹介
• 川口 勇作 (KAWAGUCHI, Yusaku)
–外国語教育について勉強しています
–Nagoya.Rの Ustream中継担当 運営
–R利用歴:1年半ちょい?
• エンドユーザの域を出ない
• 入門者が入門者講習をやるという斬新な企画
本日のメニュー
• Rとは何か
• Rの基本操作
• 関数と変数はRの命
• 行列を作ろう
• あっという間に作図の巻
とは
• 統計処理のためのプログラミング言語
• 無償+オープンソースのソフトウェア
• いわゆる「統計ソフト」
のよいところ
• タダ(SPSSは約10万円)
• たくさんの統計処理ができる
• グラフがきれい
のつらいところ
• 文字ベースの操作
–プログラミング技術が多少必要に
• いろいろな知識が必要
–英語も多少読めないといけない
のつらいところ
• 文字ベースの操作
–プログラミング技術が多少必要に
• いろいろな知識が必要
–英語も多少読めないといけない
• どっちも解決します!
本日のメニュー
• Rとは何か
• Rの基本操作
• 関数と変数はRの命
• 行列を作ろう
• あっという間に作図の巻
のインストール
• http://www.r-project.org/にアクセス
• “download R” をクリック
• Japanの中から,CRAN1つを選択
• 使っているOS のリンクをクリック
• バージョンを選択しダウンロード
<- 過去のバージョンのものはこちらから!
のインストール
• ダウンロードしたファイルをダブルクリックで開く
• ダイアログの指示にしたがって進める
のアップデート
• http://www.r-project.org/にアクセス
• 新しいバージョンが出ているか確認
• 新規にインストール用ファイルをダウンロードしてインストール
• 要するに手動
のアップデート
• 注意:更新は控えめに
–使いたいパッケージ(追加機能)が古いバージョンだと使えない場合
–セキュリティに問題がある場合
• なおWindows版は新旧のバージョンが併存できます
のアンインストール
• Windows –コンパネ>プログラムの追加と削除 –一般的なアプリケーションのアンインス
トールの手順と同じ)
• Mac OS X
– /Applications にある アイコンと/Library の中のFrameworks にある R. framework を削除
の起動
• Windows –スタート -> プログラム -> R -> お好み
のバージョンを起動
• Mac OS X – /Application内のRアイコンをクリック
• -> Rの「コンソール」が表示されるか確認してください
の終了
• WindowsもMac OS Xも
–「閉じる」ボタンでおk
–「q()」と入力(これが終了コマンド)
• ウィンドウが消えてR終了
–作業スペースの保存をするかどうか聞かれる
–今はしなくていいです
で困ったときは…
• とりあえずググる
• 以下のサイトを調べましょう – 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/)
まとめ
• は統計ソフト
• 無償でいろんな統計が使えてきれいな図が描けます
• 困ったときはググりましょう
本日のメニュー
• Rとは何か
• Rの基本操作
• 関数と変数はRの命
• 行列を作ろう
• あっという間に作図の巻
以下 ”>”から始まる式を
コンソールに 入力していってください
”>”は入力
しなくていいです
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 [Enter]
> 10-3 [Enter]
> 2*3 [Enter]
> 100/20 [Enter]
> (12+34-56)*78/90 [Enter]
-8.666667
累乗
• 「 ^ 」を使う
> 10^2
10の2乗
> 100^2
100の2乗
ちょっと高度に
• 次の違いは?
> 100^1/2
1001/2
> 100^(1/2)
100(1/2)
おさらい
• 足し算:+
• 引き算:-
• 掛け算:*
• 割り算:/
• 累乗:^
これまでのは単なる計算式
これから関数というものを使います
関数とは?
• 指定した値(引数)に対して何らかの処理をして結果を返すもの
• には多数の関数がある
• q() や help() も関数
– ()の中に引数を入れる
sqrt():平方根
> sqrt(2)
1.414214
> sqrt(144)
12
> sqrt(104976)
324
コンソールで「+」が出たら
• 入力中に誤って[Enter]を押すと,待機状態を示す「+」が出る
– [STOP]ボタン ,もしくは[Esc]キーでキャンセル
> sqrt(
+
次に
変数 というものを 使います
変数とは?
• 変数とは1つ以上の値をまとめていれておく「箱」のこと
• ではベクトルとも呼ばる
• 複数の値を1つにまとめたものを指す
変数とは?
• 統計処理を行うには複数の値をまとめて扱うことが必要
–それを使い回すために変数を使う
• 変数に数値を入れることを「代入」という
英語で例えると
• 関数は動詞
• 引数は目的語
• 変数は代名詞 みたいなもの?
変数に数値を入れる
• 変数の名前を”hako”にしましょう
> hako <- c(1,2,3,4,5)
c関数:値を1つにまとめる関数
–代入したら中身を確認
> hako
“<-”って?
> hako <- c(1,2,3,4,5)
の”<-”は左向きの矢印(←)を表現
–矢印の先にある変数に代入します
–矢印は反対方向でもOK
> c(1,2,3,4,5) -> hako
「+」が出たら
• 入力中に誤って[Enter]を押すと,待機状態を示す「+」が出る
– [STOP]ボタン ,もしくは[Esc]キーでキャンセル
> hako <
+
履歴機能と補完機能
• 履歴:上下の矢印キー
–今まで入力したものが記録されている
• 補完:[Tab]キー
–一部を入力すると入力履歴や関数から予測して補完してくれる
現在 ”hako”という名前の
変数の中に 1から5までの数字が まとめて入っている
状態です
以下の関数を実行
> sqrt(hako)
> log(hako)
これだけ入力するのと どっちが楽ですか? > sqrt(1) > sqrt(2) > sqrt(3) > sqrt(4) > sqrt(5) > log(1) > log(2) > log(3) > log(4) > log(5)
これだけ入力するのと どっちが楽ですか? > sqrt(1) > sqrt(2) > sqrt(3) > sqrt(4) > sqrt(5) > log(1) > log(2) > log(3) > log(4) > log(5)
使ってみよう
• 基本統計量を求める:summary()
• 度数分布表を作る:table()
• 合計する:sum()
• データの個数を求める:length()
使ってみよう
• 平均値を求める:mean()
• 最大値を求める:max()
• 最小値を求める:min()
• 中央値を求める:median()
• 標準偏差を求める:sd()
ここまでのまとめ
• Rは「関数」と「変数」が命
• 関数を使って数値を処理
• q(), help(), sqrt(), log(), c() など
• 変数を使って一気に処理
本日のメニュー
• Rとは何か
• Rの基本操作
• 関数と変数はRの命
• 行列を作ろう
• あっという間に作図の巻
例えば…
身長 体重
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
行列を作る関数
• matrix()関数
–matrix(要素, 行の数, 列の数)
このデータで…
身長 体重
A 180 75
B 170 65
C 165 60
D 175 70
E 190 80
行列を作ってみる
> karada <- matrix(c(180, 170, 165, 175, 190, 75, 65, 60, 70, 80), 5, 2)
• c()関数で,数値を連結
• matrix()関数で,5行2列の行列に変換
• “karada”という名の変数に代入
• > karada と入力して変数の中身を確認
行列の要素を取り出す
• 行列を作り変数に代入
• 変数の中から見たい行や列を指定
行列の要素を取り出す
• 2行目を表示 -> karada[2,]
• 2列目を表示 -> karada[,2]
行列の要素を取り出す
• 複数行・複数列をまとめて取り出すときはc()関数を使う
行列まとめ
• 横方向が行,縦方向が列
• matrix()関数で行列を作る
• 必要な要素を適宜取り出して値を確認
データフレーム
• 文字データや数字データを一緒くたにして並べたもの
• 関数を駆使して自力で作ることも可能
• だけど…
できますけど…
• コマンドや文字をいちいち打ち込むのはしんどい!
• Excelなどの外部から楽にデータを読み込みたい!
-> できます
外部データの読み込み
• read.table()関数
• read.delim()関数
• read.csv()関数
• 1つずつ解説します
外部データの読み込み
• read.table()関数
–データフレーム形式のテキストを読み込む
• read.table("ファイル名", header=T / F , sep="¥t" / ",")
外部データの読み込み
• read.table()関数
–headerとは「見出し行」のこと
• Tならあり,Fならなし
–sepとは「区切り文字」のこと
• "¥t" ならタブ,"," ならカンマ
外部データの読み込み
• read.delim()関数
–タブで区切られたテキストを読み込む
–タブ区切りテキスト専用
– read.delim("ファイル名", header=T / F)
外部データの読み込み
• read.csv()関数
–カンマで区切られたテキストを読み込む
–カンマ区切りテキスト専用
– read.csv("ファイル名", header=T / F)
外部データの読み込み
• ファイル選択ダイアログからの読み込み
– “ファイル名”のところに…
• file.choose()と入力
外部データの読み込み
• クリップボードからの読み込み
– “ファイル名”のところに…
• Win & Linux:"clipboard"
• Mac:pipe("pbpaste")
• …と入力
演習 • 見出し行のあるデータを、Excelからクリップ
ボードにコピーして読み込んで、「dat」という名前の変数に代入してみましょう
–Win & Linuxの場合
dat<-read.table("clipboard", header=T)
–Macの場合
dat<- read.table(pipe"pbpaste", header=T)
変数を使ってみましょう
• table(dat[,1])
–度数分布を確認する
• mean(dat[,2])
–平均値を求める
本日のメニュー
• Rとは何か
• Rの基本操作
• 関数と変数はRの命
• 行列を作ろう
• あっという間に作図の巻
あっという間に作図の巻
• ヒストグラム
• 散布図
• 箱ひげ図
• さっそくやってみましょう
ヒストグラムの作図
• hist()関数
–さっきのデータに基づいて、身長・体重の分布を確認しましょう
–重要:引数はdatの1列目、2列目というように指定してください
散布図の作図
• plot()関数
–TOEICスコアと英作文の語数の相関を確認しましょう
箱ひげ図の作図
• boxplot()関数
–英作文の語数の幅を比較しましょう
作図まとめ
• hist()関数
• plot()関数
• boxplot()関数
• たったこれだけで美しい作図
• Rってすごい
結論
みんな で
みんないい みなさんもRを使いましょう