2016/09/29 統計解析ソフト「R」の基礎
目 次
1. プログラミング言語の種類
2. プログラミング言語の世代
3. 統計環境Rについて
4. なぜRなのか
5. Rのインストール
6. ユーザインタフェース
7. 変数の作り方
8. 主なデータの型、その検査と変換
9. データの構造(オブジェクト型)
10. 因子について
11. パッケージについて
12. 困ったとき その1、その2
13. さらに学ぶために
2
演 習 一 覧
[演習1] まず電卓として使ってみよう
[演習2] 様々なデータ型の変数を作ってみよう
[演習3] 計算ができないデータ型はどれ?
[演習4] 様々な構造の変数を作ってみよう
3
演習用コードファイル:
Rデモ01_はじめの一歩.r
1. プログラミング言語の種類
• スクリプト言語 scripting language
インタプリタで逐次機械語翻訳される
一般に低速だが記述は楽
Python, perl, PHP, Ruby, JavaScript, R
• コンパイラ言語
コンパイラで一括で機械語翻訳される
一般に高速だが記述はやや面倒に
C, C++, Java, C#, COBOL, Pascal, FORTRAN
4
2. プログラミング言語の世代
• 第一世代: 機械語
• 第二世代: アセンブリ言語
• 第三世代: 手続き型言語
FORTRAN, LISP, COBOL, APL, PL/I, C言語, etc.
• 第四世代
R言語, S言語, SAS, SPSS, Stata, MATLAB, etc.
同じ処理を第三世代言語で書くのと比較して、大幅にコー
ド量の削減が見込める
慣れれば開発もメンテも楽
5
4GL: 4th Generation Language
3. 統計環境Rについて
• S言語とほぼ互換の統計計算とグラフィックの
ためのオープンソースのフリーソフトウェア
• 公式サイトはCRAN (The Comprehensive R Archive
Network) https://cran.r-project.org/
• 著作権は放棄されていない(コピーレフト)
• ユーザはこれを実行し、複製し、修正し、再配
布できるが、その再配布物のライセンスに制限
を加えることはできない
ライセンス: GNU GPL(General Public License: 一
般公衆利用許諾契約書)
http://www.opensource.jp/gpl/gpl.ja.html (和訳)
6
4. なぜRなのか
i. 費用がかからず、プラットフォーム
(Win/Mac/Linux)も選ばないので、どこで
も導入しやすい
ii. 巨大なユーザーコミュニティと膨大なライ
ブラリ群を活用できる。たいていの統計手
法は誰かがライブラリを作って公開し、さ
らに誰かが使ってその方法をどこかに書い
ている
iii. 細かいカスタマイズが可能な美しいグラ
フィック機能を持つ
7
5. Rのインストール
• ソフトウェアのダウンロード
以下のサイトから最新版をダウンロード
The R Project.org https://www.r-project.org/index.html
※ 2016/08/24 現在で最新バージョンは3.3.1
コードネームは(Bug in Your Hair)
• インストール
Rjpwikiのインストールページを参照
http://www.okadajp.org/RWiki/?R%20%E3%81%AE%E3%82%A4%E3%
83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
Windowsで管理者権限がなくても、パッケージ
のインストールは可能
8
[補足] 32bit版と64bit版について
(※) 使用したいパッケージやコードが古く、
64bit版に対応しない場合は、例外的に32bit版
をインストールする
9
CPU OS R
32bit版 32bit版 32bit版のみ
64bit版 32bit版 32bit版のみ
64bit版 64bit版 原則64bit版(※)
6. ユーザインタフェース
「コンピュータと人とを橋渡しする仕組み」
• GUI (Graphical User Interface)
キーボードでの文字入力以外に、ウィンドウ
のメニューやアイコンをマウスで操作すること
により、様々な処理を行う
メニューから機能を選ぶなどの形で、視覚的
にコンピュータを操作することができる
• CUI (Character User Interface)
マウスを使わず、キーボード入力のみでコン
ピュータを操作する
コマンドを知らないと操作できないが、習熟
すれば作業効率が高い
10
CUI の例DOS画面
WindowsのPowerShell画面
Rの画面
11
コマンドがわからな
ければ使えない!
でも慣れればとても
作業効率が高いよ
• 起動はデスクトップのアイコン をクリック
• 終了は、プロンプト > に続いて q() と入力する
か、メニューバーから「ファイル」⇒「終了」
を選択し、表示される次の質問ダイアログで
「いいえ」を選択
Rの起動と終了
12
[演習1]
まず電卓として使ってみよう!
13
ポイント
• 長い式は、そのまま複数行に書くが、途中の
各行の最後は「+」などの演算子にする
• 二つ以上の計算式を一行に書くときは、セミ
コロンを使う
• 矢印キー「↑」で過去に打ったコマンドを呼
び出せる
• 「#」 の後ろはコメント(一行分)
7. 変数の作り方
• 英数字、ピリオド(.)、アンダースコア(_)を組み合わ
せて作る
• 英字の大文字・小文字は区別される
• 変数名には日本語も使用可能(非推奨)
• 数字とアンダースコアを変数名の冒頭にすることはで
きない
• 以下のような記号は使用できない
?, $, %, ^, &, *, (, ), -, #, ?, , , <, >, /, |, , [ ,] ,{ ,};
• 予め使途が定められた予約語も変数名に使用できない
break else FALSE for function if in Inf NA NaN next
NULL repeat TRUE while
14
変数は 「<-」 で値を与える(付値)
a <- 10
b <- rep(1, times=5) # 1が5つのベクトル
c <- 1:10
d <- seq(1, 10, by=2)
# 1から10まで2刻みのベクトルを作成
b # 変数名だけを入力すると内容が表示される
(e <- rep(c(1, 3, 4), times=3))
# 外側を括弧で囲むと付値と同時に表示をする
15
8. 主なデータ型、その検査と変換
変数のデータ型はmode()で調べられる
• 実数 (numeric) ※ 倍精度浮動小数点
[is.numeric() / as.numeric()]
• 整数(integer)
[is. integer() / as. integer()]
• 文字 (character)
[is.character() / as.character()]
• 論理値 (logical) : TrueとFalseのニ値
[is.logical() / as.logical()] 16
[型チェック関数 / 型変換関数]
[演習2]
様々なデータ型の変数を作ろう!
17
ポイント
• データ型の調べ方
• データ型の変更方法
• NAとの遭遇
[演習3]
計算ができないデータ型は?
18
ポイント
• 計算トラブルは型が問題
• 自動的に型が変わるとき
• 論理値データは計算できる
9. データの構造(オブジェクト型)
• ベクトル(vector)一次元
[ is.vector() / as.vector() ]
• 行列(matrix) 二次元
[ is.matrix() / as.matrix() ]
• 配列(array) 三次元以上
[ is.array() / as.array() ]
• リスト(list) 関数の戻り値
[ is.list() / as.list() ]
• データフレーム(data frame)
[ is.data.frame() / as.data.frame() ]
19
データ構造のイメージ
a) ベクトル b) 行列 c) 配列
d) データフレーム e) リスト
20
関数 cbind, rbind
• cbindは行列を縦に、rbindは横にくっつける
cbind: + →
rbind: + →
※ Rのベクトルは横に並べて表示されるが縦ベクトル 21
[演習4]
様々な構造の変数を作ろう!
22
ポイント
• 変数には型と構造がある
• 変数から目的の要素を取り出す方法
• Rのベクトルは横表示の縦ベクトル
• 要素の再利用に注意!
10. 因子 (factor)について
• 性別や血液型などのカテゴリ変数を効率良
く保存・表示することができるデータのク
ラス
• 文字のようだが引用符はつかず、実態は数
値として扱われるが、計算には使用できな
い
• 因子は複数の水準(level)から構成される
• データ型と同様、is.factor() / as.factor()
で確認や型変換ができる
23
> y <- factor(c("A", "AB", "A", "A", "B", "O", "O"))
> y
[1] A AB A A B O O
Levels: A AB B O
> mode(y) # データの保存型を確認
[1] “numeric”
> class(y) # データのクラスは因子
[1] "factor"
> str(y) # オブジェクト構造を確認
Factor w/ 4 levels "A","AB","B","O": 1 2 1 1 3 4 4
因子について (つづき)
24
11. パッケージについて
• パッケージ(package)とは、様々な機能を持つ関
数やデータをまとめたライブラリ
• ユーザが独自に作成や公開をすることができる
• CRAN (Rの公式サイト)では、一定基準を満たし
たユーザ作成の公認パッケージが公開されてい
る
• 公認パッケージ一覧
https://cran.r-
project.org/web/packages/available_packages_by_n
ame.html
25
パッケージのインストール方法
メニューバーの「パッケージ」⇒「パッケージのイ
ンストール」⇒ CRANミラー選択画面から日本のどこ
かを選択 ⇒ インストールしたいパッケージを選択
パッケージ一覧からzipファイルをダウンロードし、
メニューバーから「パッケージ」⇒「ローカルにあ
るzipファイルからのパッケージのインストール」を
選択する
26
require("scatterplot3d") # ii)から
z <- seq(-10, 10, 0.01) # -10から10まで0.01刻み
x <- cos(z)
y <- sin(z)
scatterplot3d(x, y, z, highlight.3d=TRUE,
col.axis="blue", col.grid="cyan", main="螺旋の3Dプ
ロット", pch=20)
パッケージを使ってみよう
i. scatterplot3dパッケージのzipファイルをダウ
ンロードしてインストール
ii. scatterplot3dパッケージをロード
iii. 三次元データの作成とプロット
27
12. 困ったとき、その1
• ヘルプ関数
help(関数名, package = パッケージ名) または?関数名
# ただし、ライブラリをロードないとそのパッケー
ジの収録関数のヘルプは有効にならない
• 関連関数とそのパッケージをリストアップ
help.search("obs")
• パッケージの概要と関数一覧等
library( help = MASS )
• キーワードサーチ
※ インストール済みパッケージは全て考慮される
apropos("norm") # キーワードでオブジェクト名から検索
help.search("LATEX") # キーワードでヘルプファイルから検索
28
12. 困ったとき、その2
• Rjpwikiで単語検索
http://www.okadajp.org/RWiki/?cmd=search
• Rのための検索エンジン SeekR
http://seekr.jp/
29
13. さらに学ぶために
① Webサイトを活用する
RjpWiki http://www.okadajp.org/RWiki/
Rに関する情報交換を目的としたWikiサイト
SeekR http://seekr.jp/ Rのための検索エンジン
② 良い参考書を入手する => 次スライド以降
RjpWikiのR本リスト
http://www.okadajp.org/RWiki/?R%E6%9C%AC%E3%83%AA%E3%82%B9
%E3%83%88
③ 身近に一緒に勉強できる仲間を作る
④ 難しければ地域の勉強会に顔を出してみる
Fukuoka.R, Kashiwa.R, Kobe.R, Nagoya.R, Okinawa.R, Osaka.r
SappoRo.R, Shiga.R, Tokyo.R, Tsukuba.R, Yokohama.R などが存在し、
これらをまとめる形で例年11月末から12月上旬にJapan.Rが開催
される
[ Japan.R2015 https://atnd.org/events/71243 昨年は12/5 ]
#japanr #TokyoR などのハッシュタグで検索可能
30
お勧め書籍
■ The R Tips第2版 ―データ解析環境Rの基本
技・グラフィックス活用集―
舟尾暢男著、オーム社
http://estore.ohmsha.co.jp/titles/978427406783P
■ みんなのR
データ分析と統計解析の新しい教科書
Jared P. Lander著、マイナビ出版
https://book.mynavi.jp/ec/products/detail/id=39763
■ Rによるデータサイエンス
データ解析の基礎から最新手法まで
金 明哲著、森北出版
http://www.morikita.co.jp/books/book/536
31
統計環境R_はじめの一歩2016

統計環境R_はじめの一歩2016

Editor's Notes

  • #3 可能であればパッケージインストールも取り上げたい
  • #6 4GL: 4th generation language
  • #7 Rの作成者は、Ross IhakaとRobert Gentleman。
  • #8 見栄えも重要!
  • #9 研修ではインストールは行わないので参考情報 RのコードネームはPeanuts(スヌーピーの漫画)の台詞にちなんでいるらしい
  • #13 追加スライド
  • #15 変数を作るとき、 Rはそれがどのようなものかという指定が必須ではなく、指定のない場合はそこに入れるものに応じて種類が決まる
  • #16 このスライドは変換ミスあり
  • #17 データ型(data type) 日時と複素数は割愛 データ型の大小関係: character > complex > numeric > logical > NULL http://cse.naro.affrc.go.jp/takezawa/r-tips/r/25.html  
  • #20 テキスト修正あり! http://stat.biopapyrus.net/r/objecttype.html  ※ オブジェクト型に「因子」は入っていない
  • #24 石田(2008)「テキストマイニング入門」 p.22
  • #25 石田(2008)「テキストマイニング入門」 p.22