Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

282 views

Published on

2016年度用に作成した研修テキストです。2015年度版を微修正しており、基本的に同じ内容です。演習用コードとあわせてご利用ください。

Published in: Education
  • Be the first to comment

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

  1. 1. 2016/09/29 統計解析ソフト「R」の基礎
  2. 2. 目 次 1. プログラミング言語の種類 2. プログラミング言語の世代 3. 統計環境Rについて 4. なぜRなのか 5. Rのインストール 6. ユーザインタフェース 7. 変数の作り方 8. 主なデータの型、その検査と変換 9. データの構造(オブジェクト型) 10. 因子について 11. パッケージについて 12. 困ったとき その1、その2 13. さらに学ぶために 2
  3. 3. 演 習 一 覧 [演習1] まず電卓として使ってみよう [演習2] 様々なデータ型の変数を作ってみよう [演習3] 計算ができないデータ型はどれ? [演習4] 様々な構造の変数を作ってみよう 3 演習用コードファイル: Rデモ01_はじめの一歩.r
  4. 4. 1. プログラミング言語の種類 • スクリプト言語 scripting language インタプリタで逐次機械語翻訳される 一般に低速だが記述は楽 Python, perl, PHP, Ruby, JavaScript, R • コンパイラ言語 コンパイラで一括で機械語翻訳される 一般に高速だが記述はやや面倒に C, C++, Java, C#, COBOL, Pascal, FORTRAN 4
  5. 5. 2. プログラミング言語の世代 • 第一世代: 機械語 • 第二世代: アセンブリ言語 • 第三世代: 手続き型言語 FORTRAN, LISP, COBOL, APL, PL/I, C言語, etc. • 第四世代 R言語, S言語, SAS, SPSS, Stata, MATLAB, etc. 同じ処理を第三世代言語で書くのと比較して、大幅にコー ド量の削減が見込める 慣れれば開発もメンテも楽 5 4GL: 4th Generation Language
  6. 6. 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
  7. 7. 4. なぜRなのか i. 費用がかからず、プラットフォーム (Win/Mac/Linux)も選ばないので、どこで も導入しやすい ii. 巨大なユーザーコミュニティと膨大なライ ブラリ群を活用できる。たいていの統計手 法は誰かがライブラリを作って公開し、さ らに誰かが使ってその方法をどこかに書い ている iii. 細かいカスタマイズが可能な美しいグラ フィック機能を持つ 7
  8. 8. 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
  9. 9. [補足] 32bit版と64bit版について (※) 使用したいパッケージやコードが古く、 64bit版に対応しない場合は、例外的に32bit版 をインストールする 9 CPU OS R 32bit版 32bit版 32bit版のみ 64bit版 32bit版 32bit版のみ 64bit版 64bit版 原則64bit版(※)
  10. 10. 6. ユーザインタフェース 「コンピュータと人とを橋渡しする仕組み」 • GUI (Graphical User Interface) キーボードでの文字入力以外に、ウィンドウ のメニューやアイコンをマウスで操作すること により、様々な処理を行う メニューから機能を選ぶなどの形で、視覚的 にコンピュータを操作することができる • CUI (Character User Interface) マウスを使わず、キーボード入力のみでコン ピュータを操作する コマンドを知らないと操作できないが、習熟 すれば作業効率が高い 10
  11. 11. CUI の例DOS画面 WindowsのPowerShell画面 Rの画面 11 コマンドがわからな ければ使えない! でも慣れればとても 作業効率が高いよ
  12. 12. • 起動はデスクトップのアイコン をクリック • 終了は、プロンプト > に続いて q() と入力する か、メニューバーから「ファイル」⇒「終了」 を選択し、表示される次の質問ダイアログで 「いいえ」を選択 Rの起動と終了 12
  13. 13. [演習1] まず電卓として使ってみよう! 13 ポイント • 長い式は、そのまま複数行に書くが、途中の 各行の最後は「+」などの演算子にする • 二つ以上の計算式を一行に書くときは、セミ コロンを使う • 矢印キー「↑」で過去に打ったコマンドを呼 び出せる • 「#」 の後ろはコメント(一行分)
  14. 14. 7. 変数の作り方 • 英数字、ピリオド(.)、アンダースコア(_)を組み合わ せて作る • 英字の大文字・小文字は区別される • 変数名には日本語も使用可能(非推奨) • 数字とアンダースコアを変数名の冒頭にすることはで きない • 以下のような記号は使用できない ?, $, %, ^, &, *, (, ), -, #, ?, , , <, >, /, |, , [ ,] ,{ ,}; • 予め使途が定められた予約語も変数名に使用できない break else FALSE for function if in Inf NA NaN next NULL repeat TRUE while 14
  15. 15. 変数は 「<-」 で値を与える(付値) 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
  16. 16. 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 [型チェック関数 / 型変換関数]
  17. 17. [演習2] 様々なデータ型の変数を作ろう! 17 ポイント • データ型の調べ方 • データ型の変更方法 • NAとの遭遇
  18. 18. [演習3] 計算ができないデータ型は? 18 ポイント • 計算トラブルは型が問題 • 自動的に型が変わるとき • 論理値データは計算できる
  19. 19. 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
  20. 20. データ構造のイメージ a) ベクトル b) 行列 c) 配列 d) データフレーム e) リスト 20
  21. 21. 関数 cbind, rbind • cbindは行列を縦に、rbindは横にくっつける cbind: + → rbind: + → ※ Rのベクトルは横に並べて表示されるが縦ベクトル 21
  22. 22. [演習4] 様々な構造の変数を作ろう! 22 ポイント • 変数には型と構造がある • 変数から目的の要素を取り出す方法 • Rのベクトルは横表示の縦ベクトル • 要素の再利用に注意!
  23. 23. 10. 因子 (factor)について • 性別や血液型などのカテゴリ変数を効率良 く保存・表示することができるデータのク ラス • 文字のようだが引用符はつかず、実態は数 値として扱われるが、計算には使用できな い • 因子は複数の水準(level)から構成される • データ型と同様、is.factor() / as.factor() で確認や型変換ができる 23
  24. 24. > 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
  25. 25. 11. パッケージについて • パッケージ(package)とは、様々な機能を持つ関 数やデータをまとめたライブラリ • ユーザが独自に作成や公開をすることができる • CRAN (Rの公式サイト)では、一定基準を満たし たユーザ作成の公認パッケージが公開されてい る • 公認パッケージ一覧 https://cran.r- project.org/web/packages/available_packages_by_n ame.html 25
  26. 26. パッケージのインストール方法 メニューバーの「パッケージ」⇒「パッケージのイ ンストール」⇒ CRANミラー選択画面から日本のどこ かを選択 ⇒ インストールしたいパッケージを選択 パッケージ一覧からzipファイルをダウンロードし、 メニューバーから「パッケージ」⇒「ローカルにあ るzipファイルからのパッケージのインストール」を 選択する 26
  27. 27. 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
  28. 28. 12. 困ったとき、その1 • ヘルプ関数 help(関数名, package = パッケージ名) または?関数名 # ただし、ライブラリをロードないとそのパッケー ジの収録関数のヘルプは有効にならない • 関連関数とそのパッケージをリストアップ help.search("obs") • パッケージの概要と関数一覧等 library( help = MASS ) • キーワードサーチ ※ インストール済みパッケージは全て考慮される apropos("norm") # キーワードでオブジェクト名から検索 help.search("LATEX") # キーワードでヘルプファイルから検索 28
  29. 29. 12. 困ったとき、その2 • Rjpwikiで単語検索 http://www.okadajp.org/RWiki/?cmd=search • Rのための検索エンジン SeekR http://seekr.jp/ 29
  30. 30. 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
  31. 31. お勧め書籍 ■ 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

×