97
Nagoya.R #12 入門者講習 名古屋大学大学院 川口 勇作 [email protected] 於:名古屋大学東山キャンパス 2014/12/6

Nagoya.R #12 入門者講習

Embed Size (px)

Citation preview

Nagoya.R #12

入門者講習

名古屋大学大学院

川口 勇作

[email protected]

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

2014/12/6

はじめに…

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

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

–退屈されないように頑張ります

–できる方は周りのサポートか睡眠学習の時間に

自己紹介

• 川口 勇作 (KAWAGUCHI, Yusaku)

–外国語教育について勉強しています

–Nagoya.Rの Ustream中継担当 運営

–R利用歴:1年半ちょい?

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

• 入門者が入門者講習をやるという斬新な企画

本日のメニュー

• Rとは何か

• Rの基本操作

• 関数と変数はRの命

• 行列を作ろう

• あっという間に作図の巻

そもそも

って何?

とは

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

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

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

のよいところ

• タダ(SPSSは約10万円)

• たくさんの統計処理ができる

• グラフがきれい

うおぉぉぉぉぉぉぉ!!

るおぉぉぉぉぉぉぉ!!

WRRRYYYYYYYY!!

のつらいところ

• 文字ベースの操作

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

• いろいろな知識が必要

–英語も多少読めないといけない

ウゲーッ

のつらいところ

• 文字ベースの操作

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

• いろいろな知識が必要

–英語も多少読めないといけない

• どっちも解決します!

本日のメニュー

• 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の命

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

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

”>”は入力

しなくていいです

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を使いましょう