SlideShare uma empresa Scribd logo
1 de 22
統計解析ソフト R による
「ミクロデータ分析の基礎」
平成 29 年度(2017 年)
Ⅰ. 基礎編
作成: 和田かず美・河野真理子
協力: 床裕佳子・坂下佳一郎・田中隆・飯島信也・松本正博
目次
1.研修の目的 ...........................................................................................1
2.統計解析ソフト R について.......................................................................1
3.なぜ R を使うのか ..................................................................................1
4.R のインストール...................................................................................2
5.R の起動と終了......................................................................................8
[演習 1] 電卓代わりに使ってみよう ............................................................9
6.変数の作り方.........................................................................................9
[演習 2] 変数に値を入れてみよう.............................................................10
7.データの型 .........................................................................................10
[演習 3] 様々なデータ型の変数を作ってみよう ............................................11
[演習 4] 様々なデータ型で計算をしてみよう...............................................11
8.データの構造.......................................................................................12
[演習 5] 様々な構造のデータを作って眺めてみよう.......................................13
9.因子(factor)属性について ...................................................................14
[演習 6] 因子属性のデータを作って眺めてみよう..........................................14
10.パッケージのインストールと使用方法......................................................15
[演習 7] epade パッケージを使ってみよう................................................17
I-1
1.研修の目的
簡単なミクロデータ分析の演習を通じて、統計解析ソフト R の使い方を学習する。こ
の、基礎編では、R の起動や終了、様々な変数など、分析を行うために必要な事項を収録
した。
2.統計解析ソフト R について
 統計計算とグラフィックのためのフリーソフトウェアだが、著作権は放棄されていな
い(コピーレフト)
 特定の営利企業が開発をしているわけではなく、世界中の多くの開発者が参加するコ
ミュニティで開発されている
 公式サイトは CRAN (The Comprehensive R Archive Network)
https://cran.r-project.org/ (英語)
日本語のコミュニティサイトは、Rjpwiki
http://www.okadajp.org/RWiki/?RjpWiki
 ユーザはこれを実行し、複製し、修正し、再配布できるが、その再配布物のライセン
スに制限を加えることはできない
ライセンス:GNU GPL(General Public License:一般公衆利用許諾契約書)
http://www.opensource.jp/gpl/gpl.ja.html (和訳)
3.なぜ R を使うのか
 利用にあたり費用がかからず、OS(Windows/Mac/Linux)も選ばないので、導入し
やすい
 巨大なユーザーコミュニティと膨大なライブラリ群を活用できる。たいていの統計手
法は誰かがライブラリを作って公開し、さらに誰かがそれを使ってその方法をどこか
に書いている
☆ フリーソフトウェアは、ソースコードが公開され、実行、改変や再配布を行う
ことがライセンスにより許可されている。
☆ フリーソフトウェアとは、自由に利用できるソフトウェア
I-2
 カスタマイズしやすい美しいグラフィック機能を持つ
4.R のインストール
① ソフトウェアが置かれている場所について
以下の公式サイトには、アクセスが集中しないよう、世界各地にミラーサイトがあり、
2017 年 6 月現在、日本のミラーサイトは統計数理研究所にある。公式サイトや別の国に
あるどのミラーサイトを選んでも問題はないが、混雑していなさそうなサイトや自分が
いる場所に近いサイトを選ぶとダウンロードが早い。
The R Project.org https://www.r-project.org/index.html
日本のミラーサイト https://cran.ism.ac.jp/index.html(統計数理研究所)
② ミラーサイトにある、Linux, (Mac) OS X, Windows の中から、インストール先の PC
の OS を選ぶ。
画面 4.1:
③ ここでは、Windows の場合について説明する。画面 4.1 で、矢印の左にある囲みの中
の「Download R for Windows」を選択する。
④ 画面 4.2 が表示されるので、矢印の左にある囲みの中から、「base」あるいは「install
R for the first time」を選択する(どちらを選んでも次に選択される画面は同じ)。
⑤ 画面 4.3 から、囲みの「Download R 3.4.0 for Windows」を選ぶと、インストール
I-3
用ファイル R-3.4.0-win.exe がダウンロードされるので、任意の場所に保存する。バ
ージョン番号とダウンロードされるソフトウェアは、公開されている最新のもので、
2017 年 6 月現在のバージョンは 3.4.0、コードネームは”You Stupid Darkness”。
画面 4.2:
画面 4.3:
I-4
⑥ 保存した R-3.4.0-win.exe をダブルクリックして実行すると、インストールが始まる。
⑦ セットアップに使用される言語を選択する画面が表示されるので、好みの言語を選択
する。(デフォルトは日本語)
⑧ セットアップウィザードの開始画面が表示されるので、「次へ」を選択する。
ライセンス情報が英語で表示されるが、次のサイトに日本語訳がある。同意する場合
は「次へ」を選択する。
[ http://www.opensource.jp/gpl/gpl.ja.html ]
⑨ インストール先の指定画面が表示されるので、デフォルトが都合悪い場合は任意のデ
ィレクトリを指定する。
画面 4.4:
I-5
⑩ コンポーネントの選択画面が表示される。全てインストールしても問題はないが、イ
ンストール先の PC の CPU も OS も 64bit の場合は、「32-bit Files」(32 ビット版 R)
のチェックを外して、「次へ」を選択する。
画面 4.5:
I-6
⑪ 起動時オプションの画面が表示されるので、「いいえ(デフォルトのまま)」を選択。
⑫ プログラムグループの指定画面が表示される。スタートアップ画面に R を登録する場
合はそのまま、登録したくない場合は「プログラムグループを作成しない」にチェッ
クを入れ、「次へ」を選択する。
⑬ 画面 4.6 のような追加タスクの選択画面が表示されるので、「アイコンを追加する:」
☆ 32bit 版と 64bit 版について
CPU OS R
32bit 版 32bit 版のみ 32bit 版のみ
64bit 版 32bit 版 32bit 版のみ
64bit 版 原則 64bit 版(※)
(※) 通常はインストールする PC の CPU と OS にあわせた版をインストー
ルする。例外的に、32bit 版用しかない古いパッケージを使用したい場合
等に、CPU と OS が 64bit 版の PC に 32bit 版をインストールする。
I-7
の項では欲しいアイコンに、「レジストリ項目:」では全てにチェックが入っているこ
とを確認し、「次へ」を選択する。
画面 4.6:
⑭ セットアップウィザードの完了画面が表示されるので、「完了」ボタンを選択してセッ
トアップを終了させ、デスクトップに「R x64 3.4.0」というアイコンができているこ
とを確認する。
欲しいアイコンを
チェック
全てにチェック
I-8
5.R の起動と終了
 デスクトップの「R x64 3.4.0」というアイコンをダブルクリックすると、画面 5.1 が
表示される。
画面 5.1:
 プロンプト「>」が表示されているときに、コマンドを入力することができる。ここに
「q()」と入力、改行キーを押し、質問画面で「いいえ」を選択すれば、R が終了する。
画面 5.2:
I-9
[演習 1] 電卓代わりに使ってみよう
6.変数の作り方
1 + 2 + 5 + 10
4 * 185
(15 + 30) * 88 / 30
sum(1:100) # 1 から 100 までの整数の合計
sqrt(10) # 10 の平方根
1+2+3; 10+987/400
ポイント:
 プロンプト「>」の右側にコマンドを入力し、Enter キーを押すと実行される
 「#」の後ろはコメント(同じ行のみ)
 セミコロン「;」を使うと、一行に複数のコマンドを書くことができる
 上向き矢印キー「↑」で過去に打ったコマンドを順番に再表示できる
 コマンド入力中でも、「Esc」キーで入力中のコマンドをなかったことにできる
基本ルール:
 英数字、ピリオド(.)、アンダースコア(_)を組み合わせて作る
 英字の大文字・小文字は区別される
 変数名には日本語も使用可能
 数字とアンダースコアを変数名の頭に使うことはできない
 以下のような記号は使用できない
?, $,%, ^, &, *, (, ), -, #, ?, , , <, >, /, |, ¥, [ ,] ,{,};
 予め用途が決まっている次のような予約語も変数名に使用できない
break else FALSE for function if in Inf NA NaN next NULL repeat TRUE while
 変数には「<-」を使って値を与える(付値)
 関数の引数の既定値の設定・変更は「=」による
 変数は「<-」で値を与える(付値)
I-10
[演習 2] 変数に値を入れてみよう
a <- 10 # 変数 a に 10 を付値
a # 変数名だけを入力すると内容が表示される
b <- rep(1, times=5) # 変数 b に 1 が 5 つ反復したベクトル
b # 変数名だけを入力すると内容が表示される
c <- 1:10 # 変数 c に 1 から 10 までのベクトルを付値
d <- seq(1, 10, by=2)
# 変数 d に 1 から 10 まで 2 刻みのベクトルを付値 →[1] 1 3 5 7 9
(e <-rep(c(1, 3, 4), times=3)) # 外側を括弧で囲むと付値と同時に表示をする
(e # 変数 e を表示しようとしたときに誤って)を入れ
忘れた場合、通常のプロンプト「>」の代わりに式が継続している「+」が表示される
) # 続けて入力することができる
多くのプログラミング言語では、変数を使う前に名前やデータ型などの定義が必要だが、
R の場合は事前の定義抜きで新たな変数にデータを付値することにより、付値するデータに
応じた型でその変数が作成される。
括弧が閉じていない場合や式の途中で改行を入力してしまうと、通常のプロンプト「>」
の代わりに式が継続していることを示す「+」が表示される。この場合、引き続き残りの
式を入力すれば良い。また、誤った場合や入力途中でやめたいときなどは「Esc」を押すと
通常のプロンプトが表示される。
7.データの型
変数のデータ型には次のようなものがあり、関数 typeof ()、mode()で調べることが
できる。データ型の個別のチェックや変換のために、以下のような関数がある。
データ型 チェック関数 変換関数
整数型(integer)
実数型(double)※ 倍精度浮動小数点
is.numeric() as.numeric()
整数型(integer) is.integer() as.integer()
実数型(double) is.double() as.double()
文字型 (character) is.character() as.character()
論理型 (logical) ※ TRUE/FALSE の二値 is.logical() as.logical()
I-11
[演習 3] 様々なデータ型の変数を作ってみよう
# 実数データと整数データ
x1 <- 1; x2 <- 6.78
typeof(x1)
typeof (x2) # 値に整数を入れても実数型 (double)
# 整数に変換
as.integer(x1) # ここでは変数の値を書き換えていない
as.integer(x2) # 少数点部分を落として強制的に整数に変換される
x1 <- as.integer(x1) # x1 を整数型に変換する
# 文字データ
x3 <- "a"; x4 <- "abcdefghi"
typeof(x3); typeof(x4) # "character"
# 論理値データ
x5 <- TRUE; x6 <- FALSE
typeof (x5); typeof (x6) # "logical"
型が異なるデータ同士あるいは計算結果の型が異なる場合は、計算時に型が自動的に変
換される。計算時のトラブルは、数字のはずのデータにアルファベットが混ざっているた
めに変数が文字属性になっている場合等、データ型の問題であることが多く、事前にチェ
ック関数を使うことでエラーを回避できる。また、論理値データは計算に使用することが
できる。
[演習 4] 様々なデータ型で計算をしてみよう
# 演習 3 で作成した変数 x1~x6 を使用する
x1 * 1.5 # ○
x2 * 1.5 # ○
x3 * 1.5 # ×
x4 * 1.5 # ×
x5 * 1.5 # ○ # 論理値データは、True は 1、False は 0 として計算される
x6 * 1.5 # ○
x7 <- x1 * 1.5 # 整数型(integer)に変換した x1 に 1.5 を掛けると?
I-12
typeof(x7) # x7 は自動的に実数型になり、計算に問題は起きない
8.データの構造
主なデータ構造には、ベクトル、行列、配列、データフレームとリストがある。R のデー
タの最小の単位がベクトルで、スカラー(数字 1 つ)は、要素数 1 のベクトルとして扱わ
れる。ベクトルは、画面上で横に並べて表示されるが、縦ベクトルである。
図 8.1 データ構造のイメージ
データ構造は、関数 class ()で確認でき、ベクトルについては関数 typeof と同様に、ベ
クトル内のデータ型を、それ以外は行列、配列、リスト、データフレームの別を表示する。
個別の構造チェックや変換のために、次のような関数が用意されている。
ポイント:
 計算トラブルは型の問題が原因となることが多い
 論理値データは計算できる
I-13
データ構造 作成方法 チェック関数 変換関数
ベクトル(vector) c() is.vector() as.vector()
行列(matrix) matrix() is.matrix() as.matrix ()
配列(array) array() is.array() as.array()
リスト (list) list() is.list() as.list()
データフレーム (data frame) data.frame() is.data.frame() as.data.frame()
行列を横に結合するために、関数 cbind()、縦に結合するために rbind()を利用する。
[演習 5] 様々な構造のデータを作って眺めてみよう
# 数値・文字列ベクトル====================
y1 <- c(1, 2, 3)
y2 <- c("a", "bcd", "ef", "ghijkl")
is.vector(y1); is.vector(y2) # 構造の確認
# 数値や文字列の行列の作成====================
# 数値の行列
y3 <- matrix(1:9, nc=3)
y3 # 要素は縦並びに格納される
y3[2,2] # 2 行 2 列の要素を取り出す
y3[3,] # 3 行目の要素全てを取り出す
y3[,3] # 3 列目の要素全てを取り出す
y3 <- matrix(1:9, nc=3, nr=4)
y3 # 要素が足りないときは再利用される
# 文字列の行列
(y4 <- matrix(c("a", "bc", "def", "ef", "g", "h"), nr=2))
I-14
# 配列====================
(y5 <- array(1:24, c(2,3,4)))
y5[1,1,1] # 個別の要素の指定方法
y5[,,-1] # 要素の部分的な指定方法
# リスト====================
(y6 <- list(y1, y2, y3, y4, y5))
y6[[2]][2] # 個別の要素の指定方法
names(y6) <- c("y1", "y2", "y3", "y4", "y5") # 構成要素に名前をつける
y6 # つけた個別要素名を使った指定の方法
y6$y5[1,2,1]
str(y6) # データ構造の確認方法
# cbind, rbind====================
(z1 <- c(1,2,3)) # 要素数 3 の縦ベクトル
(z2 <- matrix(1:12, nc=3, nr=4)) # 4×3 の行列
(z3 <- rbind(z1, z2)) # 5×3 の行列
(z4 <- c(1,2,3,4,5)) # 要素数 5 の縦ベクトル
(z5 <- cbind(z3, z4)) # 5×4 の行列
z5[2,4] # 2
9.因子(factor)属性について
因子とは、性別や血液型などのカテゴリ変数を効率良く保存・表示することができるデ
ータのクラスで、次のような特徴を持つ。
• 文字のようだが表示に引用符はつかず、実態は数値として扱われるが、計算には使用
できない
• 因子は複数の水準(level)から構成される
• データ型と同様、is.factor() / as.factor() で確認や型変換ができる
[演習 6] 因子属性のデータを作って眺めてみよう
y <-factor(c("A", "AB", "A", "A", "B", "O", "O"))
y
typeof(y) # データの保存型を確認(integer)
class(y) # データのクラスは因子(factor)
str(y) #オブジェクト構造を確認
(as.character(levels(y))[y]) #因子属性→文字列に変換:"A" "AB" "A" "A" "B" "O" "O"
y1 <- factor(c("01", "98", "12")) #数値を文字列として因子属性にした場合
I-15
(y2 <- as.numeric(levels(y1))[y1])#factor→数値にする時、水準値になるため注意
# [1] 1 98 12
10.パッケージのインストールと使用方法
パッケージ(package)とは、様々な機能を持つ関数やデータをまとめたライブラリで、
次のような特徴を持つ。
• ユーザが独自に作成し、github など任意のサイトで公開することができる
• CRAN(R の公式サイト)では、一定基準を満たしたユーザ作成の公認パッケージが公開
されている
• 公認パッケージ一覧
https://cran.r-project.org/web/packages/available_packages_by_name.html
画面 10.1
見出しをクリックすると、インストール用ファイル(Windows 用インストールファイル
/Windows binaries の、r-release にリンクされている zip ファイル)やマニュアルファ
イルが置かれている、画面 10.2 のような解説ページに飛ぶ(ただし英語のみ)。
 パッケージのインストール方法(1) : インターネット経由で直接インストール
I-16
メニューバーの「パッケージ」
⇒ 「パッケージのインストール」
⇒ CRAN ミラー選択画面から適当なミラーサイト(通常自分がいる場所の近く)を選
択
⇒ インストールしたいパッケージを選択
※ 依存関係のあるパッケージもまとめてインストールされる
 パッケージのインストール方法(2) : ネットがない場合は zip ファイルから
画面 10.1 のパッケージ一覧からインストールしたいパッケージを選択し、画面 10.2 か
ら Windows 用のインストールファイル(zip ファイル)をダウンロードする
⇒ R のメニューバーから「パッケージ」を選択
⇒ 「ローカルにある zip ファイルからのパッケージのインストール」を選択
※ 依存関係のあるパッケージも個別にインストールする必要がある
インストールは最初の一度だけ行い、さらに利用時には関数 require()あるいは library()
によりパッケージ名を指定してロードする。
画面 10.2
I-17
[演習 7] epade パッケージを使ってみよう
epade パッケージは、R から HTML 形式の表を直接作成する機能を持ち、表のレイアウ
トや構成を制御する関数が収録されている。
ここでは、R に組み込まれている様々なデータの中から、あやめの花の寸法に関する iris
というデータセットを用いて、数量項目の多変量データの基本的な可視化方法である散布
図行列を描く。組み込みデータの一覧は、data()で表示することができる。
関数 data を使い、iris データセットを呼び出し、次に epade パッケージを用いて、各
変量について 3D の棒グラフを作成する。epade パッケージを使うために、まずインスト
ール作業を行った後、以下のコマンドを入力する。パッケージのインストール作業ははじ
めの一度だけで良いが、require または library 関数によるパッケージのロードはセッショ
ン毎に行う。
data(iris) # あやめの花の計測データ
help(iris) # iris データの説明表示(英語)
マニュアル
Windows 用インストールファイル
依存するパッケージ
I-18
iris # データフレームの内容表示
# データをあやめの花の種類別に分ける
ix1 <- which(iris[,5] == "setosa") # 品種名 setosa のデータ番号一覧
ix2 <- which(iris[,5] == "versicolor") # 品種名 versicolor のデータ番号一覧
ix3 <- which(iris[,5] == "virginica") # 品種名 virginica のデータ番号一覧
# 色分けフラグをつくる
f1 <- rep(NA, 150) # データサイズと同じ 150 個のフラグ
f1[ix1] <- 1; f1[ix2] <- 2; f1[ix3] <- 3;
pairs(iris[,1:4], pch=21, bg=f1, col="gray", cex=1.5) # 図 10.1
# プロット点タイブ 21 番、点自体は灰色、塗り潰しを f1 で指定し、プロット点 1.5 倍
require(epade) # 3D 棒グラフを作成する epace パッケージのロード
# プロット(1): 種類別に第一変数を棒グラフにする。
bar3d.ade(iris[,5], iris[,1])
# プロット(2): オプションで改善。lcol はバーのふちの色、alpha は透過度指定
bar3d.ade(iris[,5], iris[,2], lcol="white", alpha=0.2)
# プロット(3): wall で壁面をグレーにして、軸ラベルを表示
bar3d.ade(iris[,5], iris[,3], lcol="white", wall=1, alpha=0.2,
xlab=colnames(iris)[5], zlab=colnames(iris)[3])
# プロット(4): 位置がよくない z 軸ラベルを手作業で入れる
bar3d.ade(iris[,5], iris[,4], lcol="white", wall=1, alpha=0.2,
xlab=colnames(iris)[5], zlab="")
text(locator(1), colnames(iris)[4]) # 図 10.2
図 10.1 アイリスデータの散布図行列
Sepal.Length
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
4.55.56.57.5
2.02.53.03.54.0
Sepal.Width
Petal.Length
1234567
4.5 5.5 6.5 7.5
0.51.01.52.02.5
1 2 3 4 5 6 7
Petal.Width
I-19
図 10.2 3D 棒グラフ
I-20
[参考] アイリスデータ
Fisher(1936)が出典、データ収集は Anderson (1935)。データの大きさが 150、5 変
数の、三種類のアイリス(あやめ)の花の 4 つの特性 (がく片の長さ、がく片の幅、弁の
長さ及び弁の幅) に関する寸法データが、あやめの種類名とともに収録されている。
連 番 Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
... ... ... ... ... ...
50 5.0 3.3 1.4 0.2 setosa
51 7.0 3.2 4.7 1.4 versicolor
52 6.4 3.2 4.5 1.5 versicolor
... ... ... ... ... ...
100 5.7 2.8 4.1 1.3 versicolor
101 6.3 3.3 6.0 2.5 virginica
102 5.8 2.7 5.1 1.9 virginica
... ... ... ... ... ...
150 5.9 3.0 5.1 1.8 virginica
Anderson, Edgar (1935). The irises of the Gaspe Peninsula, Bulletin of the American Iris Society,
59, 2–5.
Fisher, R. A. (1936) The use of multiple measurements in taxonomic problems. Annals of
Eugenics, 7, Part II, 179–188.

Mais conteúdo relacionado

Mais procurados

Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
Shintaro Fukushima
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
Miyoshi Yuya
 
データ解析技術入門(R編)
データ解析技術入門(R編)データ解析技術入門(R編)
データ解析技術入門(R編)
Takumi Asai
 

Mais procurados (20)

Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
 
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
 
すごいHaskell楽しく学ぼう 第6章
すごいHaskell楽しく学ぼう 第6章すごいHaskell楽しく学ぼう 第6章
すごいHaskell楽しく学ぼう 第6章
 
Processingによるプログラミング入門 第2回
Processingによるプログラミング入門 第2回Processingによるプログラミング入門 第2回
Processingによるプログラミング入門 第2回
 
Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測
 
Interpreting Tree Ensembles with inTrees
Interpreting Tree Ensembles with  inTreesInterpreting Tree Ensembles with  inTrees
Interpreting Tree Ensembles with inTrees
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
 
Processingによるプログラミング入門 第4回
Processingによるプログラミング入門 第4回Processingによるプログラミング入門 第4回
Processingによるプログラミング入門 第4回
 
Casual learning machine_learning_with_excel_no7
Casual learning machine_learning_with_excel_no7Casual learning machine_learning_with_excel_no7
Casual learning machine_learning_with_excel_no7
 
End challenge Part1
End challenge Part1End challenge Part1
End challenge Part1
 
第8回 大規模データを用いたデータフレーム操作実習(2)
第8回 大規模データを用いたデータフレーム操作実習(2)第8回 大規模データを用いたデータフレーム操作実習(2)
第8回 大規模データを用いたデータフレーム操作実習(2)
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 
データ解析技術入門(R編)
データ解析技術入門(R編)データ解析技術入門(R編)
データ解析技術入門(R編)
 
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
 
最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-
 

Semelhante a Ⅰ. Rの基礎 2017

初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
Masahiro Hayashi
 
TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#
ta2c
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までデータサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
Shunsuke Nakamura
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
Yuichiro Kobayashi
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
Shintaro Fukushima
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
JubatusOfficial
 

Semelhante a Ⅰ. Rの基礎 2017 (20)

Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編
 
R's anti sparseness
R's anti sparsenessR's anti sparseness
R's anti sparseness
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
 
Tokyo r28 1
Tokyo r28 1Tokyo r28 1
Tokyo r28 1
 
TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#
 
R intro
R introR intro
R intro
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
データとは何か
データとは何かデータとは何か
データとは何か
 
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016統計環境R_データ入出力編2016
統計環境R_データ入出力編2016
 
StatGenSummerSchool2023_Rsoftware.pdf
StatGenSummerSchool2023_Rsoftware.pdfStatGenSummerSchool2023_Rsoftware.pdf
StatGenSummerSchool2023_Rsoftware.pdf
 
Gura プログラミング言語の紹介
Gura プログラミング言語の紹介Gura プログラミング言語の紹介
Gura プログラミング言語の紹介
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までデータサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
 
Aedlabo program 20150125
Aedlabo program 20150125Aedlabo program 20150125
Aedlabo program 20150125
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
 

Mais de wada, kazumi

Mais de wada, kazumi (20)

Rによる繰り返しの並列処理
Rによる繰り返しの並列処理Rによる繰り返しの並列処理
Rによる繰り返しの並列処理
 
2018Rユーザ会用
2018Rユーザ会用2018Rユーザ会用
2018Rユーザ会用
 
Ⅳ. 可視化事例集 2017
Ⅳ. 可視化事例集 2017Ⅳ. 可視化事例集 2017
Ⅳ. 可視化事例集 2017
 
Ⅲ. 資料編 2017
Ⅲ. 資料編 2017Ⅲ. 資料編 2017
Ⅲ. 資料編 2017
 
Ⅱ. データ分析編 2017
Ⅱ. データ分析編 2017Ⅱ. データ分析編 2017
Ⅱ. データ分析編 2017
 
2017Rユーザ会用
2017Rユーザ会用2017Rユーザ会用
2017Rユーザ会用
 
Rデモ03_データ分析編2016
Rデモ03_データ分析編2016Rデモ03_データ分析編2016
Rデモ03_データ分析編2016
 
Rデモ02_入出力編2016
Rデモ02_入出力編2016Rデモ02_入出力編2016
Rデモ02_入出力編2016
 
Rデモ01_はじめの一歩2016
Rデモ01_はじめの一歩2016Rデモ01_はじめの一歩2016
Rデモ01_はじめの一歩2016
 
統計環境R_データ分析編2016
統計環境R_データ分析編2016統計環境R_データ分析編2016
統計環境R_データ分析編2016
 
統計環境R_はじめの一歩2016
統計環境R_はじめの一歩2016統計環境R_はじめの一歩2016
統計環境R_はじめの一歩2016
 
自然科学の統計学2.2 slideshare
自然科学の統計学2.2 slideshare自然科学の統計学2.2 slideshare
自然科学の統計学2.2 slideshare
 
Rプログラミング03 データ分析編
Rプログラミング03 データ分析編Rプログラミング03 データ分析編
Rプログラミング03 データ分析編
 
Rプログラミング03 「データ分析編」デモ
Rプログラミング03 「データ分析編」デモRプログラミング03 「データ分析編」デモ
Rプログラミング03 「データ分析編」デモ
 
Rプログラミング02 「データ入出力編」デモ
Rプログラミング02 「データ入出力編」デモRプログラミング02 「データ入出力編」デモ
Rプログラミング02 「データ入出力編」デモ
 
Rプログラミング01 「はじめの一歩」 演習デモ
Rプログラミング01 「はじめの一歩」 演習デモRプログラミング01 「はじめの一歩」 演習デモ
Rプログラミング01 「はじめの一歩」 演習デモ
 
Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
 
Rによる大規模データのプロット
Rによる大規模データのプロットRによる大規模データのプロット
Rによる大規模データのプロット
 
擬似ミクロデータについて
擬似ミクロデータについて擬似ミクロデータについて
擬似ミクロデータについて
 

Ⅰ. Rの基礎 2017

  • 1. 統計解析ソフト R による 「ミクロデータ分析の基礎」 平成 29 年度(2017 年) Ⅰ. 基礎編 作成: 和田かず美・河野真理子 協力: 床裕佳子・坂下佳一郎・田中隆・飯島信也・松本正博
  • 2. 目次 1.研修の目的 ...........................................................................................1 2.統計解析ソフト R について.......................................................................1 3.なぜ R を使うのか ..................................................................................1 4.R のインストール...................................................................................2 5.R の起動と終了......................................................................................8 [演習 1] 電卓代わりに使ってみよう ............................................................9 6.変数の作り方.........................................................................................9 [演習 2] 変数に値を入れてみよう.............................................................10 7.データの型 .........................................................................................10 [演習 3] 様々なデータ型の変数を作ってみよう ............................................11 [演習 4] 様々なデータ型で計算をしてみよう...............................................11 8.データの構造.......................................................................................12 [演習 5] 様々な構造のデータを作って眺めてみよう.......................................13 9.因子(factor)属性について ...................................................................14 [演習 6] 因子属性のデータを作って眺めてみよう..........................................14 10.パッケージのインストールと使用方法......................................................15 [演習 7] epade パッケージを使ってみよう................................................17
  • 3. I-1 1.研修の目的 簡単なミクロデータ分析の演習を通じて、統計解析ソフト R の使い方を学習する。こ の、基礎編では、R の起動や終了、様々な変数など、分析を行うために必要な事項を収録 した。 2.統計解析ソフト R について  統計計算とグラフィックのためのフリーソフトウェアだが、著作権は放棄されていな い(コピーレフト)  特定の営利企業が開発をしているわけではなく、世界中の多くの開発者が参加するコ ミュニティで開発されている  公式サイトは CRAN (The Comprehensive R Archive Network) https://cran.r-project.org/ (英語) 日本語のコミュニティサイトは、Rjpwiki http://www.okadajp.org/RWiki/?RjpWiki  ユーザはこれを実行し、複製し、修正し、再配布できるが、その再配布物のライセン スに制限を加えることはできない ライセンス:GNU GPL(General Public License:一般公衆利用許諾契約書) http://www.opensource.jp/gpl/gpl.ja.html (和訳) 3.なぜ R を使うのか  利用にあたり費用がかからず、OS(Windows/Mac/Linux)も選ばないので、導入し やすい  巨大なユーザーコミュニティと膨大なライブラリ群を活用できる。たいていの統計手 法は誰かがライブラリを作って公開し、さらに誰かがそれを使ってその方法をどこか に書いている ☆ フリーソフトウェアは、ソースコードが公開され、実行、改変や再配布を行う ことがライセンスにより許可されている。 ☆ フリーソフトウェアとは、自由に利用できるソフトウェア
  • 4. I-2  カスタマイズしやすい美しいグラフィック機能を持つ 4.R のインストール ① ソフトウェアが置かれている場所について 以下の公式サイトには、アクセスが集中しないよう、世界各地にミラーサイトがあり、 2017 年 6 月現在、日本のミラーサイトは統計数理研究所にある。公式サイトや別の国に あるどのミラーサイトを選んでも問題はないが、混雑していなさそうなサイトや自分が いる場所に近いサイトを選ぶとダウンロードが早い。 The R Project.org https://www.r-project.org/index.html 日本のミラーサイト https://cran.ism.ac.jp/index.html(統計数理研究所) ② ミラーサイトにある、Linux, (Mac) OS X, Windows の中から、インストール先の PC の OS を選ぶ。 画面 4.1: ③ ここでは、Windows の場合について説明する。画面 4.1 で、矢印の左にある囲みの中 の「Download R for Windows」を選択する。 ④ 画面 4.2 が表示されるので、矢印の左にある囲みの中から、「base」あるいは「install R for the first time」を選択する(どちらを選んでも次に選択される画面は同じ)。 ⑤ 画面 4.3 から、囲みの「Download R 3.4.0 for Windows」を選ぶと、インストール
  • 6. I-4 ⑥ 保存した R-3.4.0-win.exe をダブルクリックして実行すると、インストールが始まる。 ⑦ セットアップに使用される言語を選択する画面が表示されるので、好みの言語を選択 する。(デフォルトは日本語) ⑧ セットアップウィザードの開始画面が表示されるので、「次へ」を選択する。 ライセンス情報が英語で表示されるが、次のサイトに日本語訳がある。同意する場合 は「次へ」を選択する。 [ http://www.opensource.jp/gpl/gpl.ja.html ] ⑨ インストール先の指定画面が表示されるので、デフォルトが都合悪い場合は任意のデ ィレクトリを指定する。 画面 4.4:
  • 7. I-5 ⑩ コンポーネントの選択画面が表示される。全てインストールしても問題はないが、イ ンストール先の PC の CPU も OS も 64bit の場合は、「32-bit Files」(32 ビット版 R) のチェックを外して、「次へ」を選択する。 画面 4.5:
  • 8. I-6 ⑪ 起動時オプションの画面が表示されるので、「いいえ(デフォルトのまま)」を選択。 ⑫ プログラムグループの指定画面が表示される。スタートアップ画面に R を登録する場 合はそのまま、登録したくない場合は「プログラムグループを作成しない」にチェッ クを入れ、「次へ」を選択する。 ⑬ 画面 4.6 のような追加タスクの選択画面が表示されるので、「アイコンを追加する:」 ☆ 32bit 版と 64bit 版について CPU OS R 32bit 版 32bit 版のみ 32bit 版のみ 64bit 版 32bit 版 32bit 版のみ 64bit 版 原則 64bit 版(※) (※) 通常はインストールする PC の CPU と OS にあわせた版をインストー ルする。例外的に、32bit 版用しかない古いパッケージを使用したい場合 等に、CPU と OS が 64bit 版の PC に 32bit 版をインストールする。
  • 10. I-8 5.R の起動と終了  デスクトップの「R x64 3.4.0」というアイコンをダブルクリックすると、画面 5.1 が 表示される。 画面 5.1:  プロンプト「>」が表示されているときに、コマンドを入力することができる。ここに 「q()」と入力、改行キーを押し、質問画面で「いいえ」を選択すれば、R が終了する。 画面 5.2:
  • 11. I-9 [演習 1] 電卓代わりに使ってみよう 6.変数の作り方 1 + 2 + 5 + 10 4 * 185 (15 + 30) * 88 / 30 sum(1:100) # 1 から 100 までの整数の合計 sqrt(10) # 10 の平方根 1+2+3; 10+987/400 ポイント:  プロンプト「>」の右側にコマンドを入力し、Enter キーを押すと実行される  「#」の後ろはコメント(同じ行のみ)  セミコロン「;」を使うと、一行に複数のコマンドを書くことができる  上向き矢印キー「↑」で過去に打ったコマンドを順番に再表示できる  コマンド入力中でも、「Esc」キーで入力中のコマンドをなかったことにできる 基本ルール:  英数字、ピリオド(.)、アンダースコア(_)を組み合わせて作る  英字の大文字・小文字は区別される  変数名には日本語も使用可能  数字とアンダースコアを変数名の頭に使うことはできない  以下のような記号は使用できない ?, $,%, ^, &, *, (, ), -, #, ?, , , <, >, /, |, ¥, [ ,] ,{,};  予め用途が決まっている次のような予約語も変数名に使用できない break else FALSE for function if in Inf NA NaN next NULL repeat TRUE while  変数には「<-」を使って値を与える(付値)  関数の引数の既定値の設定・変更は「=」による  変数は「<-」で値を与える(付値)
  • 12. I-10 [演習 2] 変数に値を入れてみよう a <- 10 # 変数 a に 10 を付値 a # 変数名だけを入力すると内容が表示される b <- rep(1, times=5) # 変数 b に 1 が 5 つ反復したベクトル b # 変数名だけを入力すると内容が表示される c <- 1:10 # 変数 c に 1 から 10 までのベクトルを付値 d <- seq(1, 10, by=2) # 変数 d に 1 から 10 まで 2 刻みのベクトルを付値 →[1] 1 3 5 7 9 (e <-rep(c(1, 3, 4), times=3)) # 外側を括弧で囲むと付値と同時に表示をする (e # 変数 e を表示しようとしたときに誤って)を入れ 忘れた場合、通常のプロンプト「>」の代わりに式が継続している「+」が表示される ) # 続けて入力することができる 多くのプログラミング言語では、変数を使う前に名前やデータ型などの定義が必要だが、 R の場合は事前の定義抜きで新たな変数にデータを付値することにより、付値するデータに 応じた型でその変数が作成される。 括弧が閉じていない場合や式の途中で改行を入力してしまうと、通常のプロンプト「>」 の代わりに式が継続していることを示す「+」が表示される。この場合、引き続き残りの 式を入力すれば良い。また、誤った場合や入力途中でやめたいときなどは「Esc」を押すと 通常のプロンプトが表示される。 7.データの型 変数のデータ型には次のようなものがあり、関数 typeof ()、mode()で調べることが できる。データ型の個別のチェックや変換のために、以下のような関数がある。 データ型 チェック関数 変換関数 整数型(integer) 実数型(double)※ 倍精度浮動小数点 is.numeric() as.numeric() 整数型(integer) is.integer() as.integer() 実数型(double) is.double() as.double() 文字型 (character) is.character() as.character() 論理型 (logical) ※ TRUE/FALSE の二値 is.logical() as.logical()
  • 13. I-11 [演習 3] 様々なデータ型の変数を作ってみよう # 実数データと整数データ x1 <- 1; x2 <- 6.78 typeof(x1) typeof (x2) # 値に整数を入れても実数型 (double) # 整数に変換 as.integer(x1) # ここでは変数の値を書き換えていない as.integer(x2) # 少数点部分を落として強制的に整数に変換される x1 <- as.integer(x1) # x1 を整数型に変換する # 文字データ x3 <- "a"; x4 <- "abcdefghi" typeof(x3); typeof(x4) # "character" # 論理値データ x5 <- TRUE; x6 <- FALSE typeof (x5); typeof (x6) # "logical" 型が異なるデータ同士あるいは計算結果の型が異なる場合は、計算時に型が自動的に変 換される。計算時のトラブルは、数字のはずのデータにアルファベットが混ざっているた めに変数が文字属性になっている場合等、データ型の問題であることが多く、事前にチェ ック関数を使うことでエラーを回避できる。また、論理値データは計算に使用することが できる。 [演習 4] 様々なデータ型で計算をしてみよう # 演習 3 で作成した変数 x1~x6 を使用する x1 * 1.5 # ○ x2 * 1.5 # ○ x3 * 1.5 # × x4 * 1.5 # × x5 * 1.5 # ○ # 論理値データは、True は 1、False は 0 として計算される x6 * 1.5 # ○ x7 <- x1 * 1.5 # 整数型(integer)に変換した x1 に 1.5 を掛けると?
  • 14. I-12 typeof(x7) # x7 は自動的に実数型になり、計算に問題は起きない 8.データの構造 主なデータ構造には、ベクトル、行列、配列、データフレームとリストがある。R のデー タの最小の単位がベクトルで、スカラー(数字 1 つ)は、要素数 1 のベクトルとして扱わ れる。ベクトルは、画面上で横に並べて表示されるが、縦ベクトルである。 図 8.1 データ構造のイメージ データ構造は、関数 class ()で確認でき、ベクトルについては関数 typeof と同様に、ベ クトル内のデータ型を、それ以外は行列、配列、リスト、データフレームの別を表示する。 個別の構造チェックや変換のために、次のような関数が用意されている。 ポイント:  計算トラブルは型の問題が原因となることが多い  論理値データは計算できる
  • 15. I-13 データ構造 作成方法 チェック関数 変換関数 ベクトル(vector) c() is.vector() as.vector() 行列(matrix) matrix() is.matrix() as.matrix () 配列(array) array() is.array() as.array() リスト (list) list() is.list() as.list() データフレーム (data frame) data.frame() is.data.frame() as.data.frame() 行列を横に結合するために、関数 cbind()、縦に結合するために rbind()を利用する。 [演習 5] 様々な構造のデータを作って眺めてみよう # 数値・文字列ベクトル==================== y1 <- c(1, 2, 3) y2 <- c("a", "bcd", "ef", "ghijkl") is.vector(y1); is.vector(y2) # 構造の確認 # 数値や文字列の行列の作成==================== # 数値の行列 y3 <- matrix(1:9, nc=3) y3 # 要素は縦並びに格納される y3[2,2] # 2 行 2 列の要素を取り出す y3[3,] # 3 行目の要素全てを取り出す y3[,3] # 3 列目の要素全てを取り出す y3 <- matrix(1:9, nc=3, nr=4) y3 # 要素が足りないときは再利用される # 文字列の行列 (y4 <- matrix(c("a", "bc", "def", "ef", "g", "h"), nr=2))
  • 16. I-14 # 配列==================== (y5 <- array(1:24, c(2,3,4))) y5[1,1,1] # 個別の要素の指定方法 y5[,,-1] # 要素の部分的な指定方法 # リスト==================== (y6 <- list(y1, y2, y3, y4, y5)) y6[[2]][2] # 個別の要素の指定方法 names(y6) <- c("y1", "y2", "y3", "y4", "y5") # 構成要素に名前をつける y6 # つけた個別要素名を使った指定の方法 y6$y5[1,2,1] str(y6) # データ構造の確認方法 # cbind, rbind==================== (z1 <- c(1,2,3)) # 要素数 3 の縦ベクトル (z2 <- matrix(1:12, nc=3, nr=4)) # 4×3 の行列 (z3 <- rbind(z1, z2)) # 5×3 の行列 (z4 <- c(1,2,3,4,5)) # 要素数 5 の縦ベクトル (z5 <- cbind(z3, z4)) # 5×4 の行列 z5[2,4] # 2 9.因子(factor)属性について 因子とは、性別や血液型などのカテゴリ変数を効率良く保存・表示することができるデ ータのクラスで、次のような特徴を持つ。 • 文字のようだが表示に引用符はつかず、実態は数値として扱われるが、計算には使用 できない • 因子は複数の水準(level)から構成される • データ型と同様、is.factor() / as.factor() で確認や型変換ができる [演習 6] 因子属性のデータを作って眺めてみよう y <-factor(c("A", "AB", "A", "A", "B", "O", "O")) y typeof(y) # データの保存型を確認(integer) class(y) # データのクラスは因子(factor) str(y) #オブジェクト構造を確認 (as.character(levels(y))[y]) #因子属性→文字列に変換:"A" "AB" "A" "A" "B" "O" "O" y1 <- factor(c("01", "98", "12")) #数値を文字列として因子属性にした場合
  • 17. I-15 (y2 <- as.numeric(levels(y1))[y1])#factor→数値にする時、水準値になるため注意 # [1] 1 98 12 10.パッケージのインストールと使用方法 パッケージ(package)とは、様々な機能を持つ関数やデータをまとめたライブラリで、 次のような特徴を持つ。 • ユーザが独自に作成し、github など任意のサイトで公開することができる • CRAN(R の公式サイト)では、一定基準を満たしたユーザ作成の公認パッケージが公開 されている • 公認パッケージ一覧 https://cran.r-project.org/web/packages/available_packages_by_name.html 画面 10.1 見出しをクリックすると、インストール用ファイル(Windows 用インストールファイル /Windows binaries の、r-release にリンクされている zip ファイル)やマニュアルファ イルが置かれている、画面 10.2 のような解説ページに飛ぶ(ただし英語のみ)。  パッケージのインストール方法(1) : インターネット経由で直接インストール
  • 18. I-16 メニューバーの「パッケージ」 ⇒ 「パッケージのインストール」 ⇒ CRAN ミラー選択画面から適当なミラーサイト(通常自分がいる場所の近く)を選 択 ⇒ インストールしたいパッケージを選択 ※ 依存関係のあるパッケージもまとめてインストールされる  パッケージのインストール方法(2) : ネットがない場合は zip ファイルから 画面 10.1 のパッケージ一覧からインストールしたいパッケージを選択し、画面 10.2 か ら Windows 用のインストールファイル(zip ファイル)をダウンロードする ⇒ R のメニューバーから「パッケージ」を選択 ⇒ 「ローカルにある zip ファイルからのパッケージのインストール」を選択 ※ 依存関係のあるパッケージも個別にインストールする必要がある インストールは最初の一度だけ行い、さらに利用時には関数 require()あるいは library() によりパッケージ名を指定してロードする。 画面 10.2
  • 19. I-17 [演習 7] epade パッケージを使ってみよう epade パッケージは、R から HTML 形式の表を直接作成する機能を持ち、表のレイアウ トや構成を制御する関数が収録されている。 ここでは、R に組み込まれている様々なデータの中から、あやめの花の寸法に関する iris というデータセットを用いて、数量項目の多変量データの基本的な可視化方法である散布 図行列を描く。組み込みデータの一覧は、data()で表示することができる。 関数 data を使い、iris データセットを呼び出し、次に epade パッケージを用いて、各 変量について 3D の棒グラフを作成する。epade パッケージを使うために、まずインスト ール作業を行った後、以下のコマンドを入力する。パッケージのインストール作業ははじ めの一度だけで良いが、require または library 関数によるパッケージのロードはセッショ ン毎に行う。 data(iris) # あやめの花の計測データ help(iris) # iris データの説明表示(英語) マニュアル Windows 用インストールファイル 依存するパッケージ
  • 20. I-18 iris # データフレームの内容表示 # データをあやめの花の種類別に分ける ix1 <- which(iris[,5] == "setosa") # 品種名 setosa のデータ番号一覧 ix2 <- which(iris[,5] == "versicolor") # 品種名 versicolor のデータ番号一覧 ix3 <- which(iris[,5] == "virginica") # 品種名 virginica のデータ番号一覧 # 色分けフラグをつくる f1 <- rep(NA, 150) # データサイズと同じ 150 個のフラグ f1[ix1] <- 1; f1[ix2] <- 2; f1[ix3] <- 3; pairs(iris[,1:4], pch=21, bg=f1, col="gray", cex=1.5) # 図 10.1 # プロット点タイブ 21 番、点自体は灰色、塗り潰しを f1 で指定し、プロット点 1.5 倍 require(epade) # 3D 棒グラフを作成する epace パッケージのロード # プロット(1): 種類別に第一変数を棒グラフにする。 bar3d.ade(iris[,5], iris[,1]) # プロット(2): オプションで改善。lcol はバーのふちの色、alpha は透過度指定 bar3d.ade(iris[,5], iris[,2], lcol="white", alpha=0.2) # プロット(3): wall で壁面をグレーにして、軸ラベルを表示 bar3d.ade(iris[,5], iris[,3], lcol="white", wall=1, alpha=0.2, xlab=colnames(iris)[5], zlab=colnames(iris)[3]) # プロット(4): 位置がよくない z 軸ラベルを手作業で入れる bar3d.ade(iris[,5], iris[,4], lcol="white", wall=1, alpha=0.2, xlab=colnames(iris)[5], zlab="") text(locator(1), colnames(iris)[4]) # 図 10.2 図 10.1 アイリスデータの散布図行列 Sepal.Length 2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5 4.55.56.57.5 2.02.53.03.54.0 Sepal.Width Petal.Length 1234567 4.5 5.5 6.5 7.5 0.51.01.52.02.5 1 2 3 4 5 6 7 Petal.Width
  • 21. I-19 図 10.2 3D 棒グラフ
  • 22. I-20 [参考] アイリスデータ Fisher(1936)が出典、データ収集は Anderson (1935)。データの大きさが 150、5 変 数の、三種類のアイリス(あやめ)の花の 4 つの特性 (がく片の長さ、がく片の幅、弁の 長さ及び弁の幅) に関する寸法データが、あやめの種類名とともに収録されている。 連 番 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5.0 3.4 1.5 0.2 setosa ... ... ... ... ... ... 50 5.0 3.3 1.4 0.2 setosa 51 7.0 3.2 4.7 1.4 versicolor 52 6.4 3.2 4.5 1.5 versicolor ... ... ... ... ... ... 100 5.7 2.8 4.1 1.3 versicolor 101 6.3 3.3 6.0 2.5 virginica 102 5.8 2.7 5.1 1.9 virginica ... ... ... ... ... ... 150 5.9 3.0 5.1 1.8 virginica Anderson, Edgar (1935). The irises of the Gaspe Peninsula, Bulletin of the American Iris Society, 59, 2–5. Fisher, R. A. (1936) The use of multiple measurements in taxonomic problems. Annals of Eugenics, 7, Part II, 179–188.