More Related Content Similar to 第一回Data mining勉強会 -第二章 - 原案
Similar to 第一回Data mining勉強会 -第二章 - 原案 (20) 第一回Data mining勉強会 -第二章 - 原案2. 自己紹介
About Me
● Twitter @yushin_hirano 。
● 最近 Hadoop に関われなくて不満。
● 1/4 まで引っ越し残作業その他で勉強してなかった。
● 発表の前日と当日朝4時までこの資料を作ってた。
● いろいろヒドイ無計画なエンジニア。
3. Contents
● R による平均と分散の計算
● 平均と分散
● R を使った計算
● R を始めるための弾丸ツアー
● インストール
● 起動 - インタラクティブモードとバッチモード
● 演算子、制御構造
● 変数と型
● データソース
● デモ
● ヘルプ
● その他
● n 進数→略(さすがに大丈夫でしょう)
10. R を使った平均と分散
> x1 <- c( 118, 119, 121, 122, 170 )
> x2 <- c(128,129,130,131,132)
> mean(x1)
> var(x2)
13. R の導入
R を「始める」にあたって、
「覚えておいた方がよいこと」
「便利なこと」を中心に記述。
(詳しい利用ケースなどは、
後の回に出てくるでしょう。期待。)
14. R とは
R 言語
● 統計・分析・グラフィックスに優れたスクリプト言語。
● AT&T が開発した統計言語 S からアイデアを得た、 OSS での実
装。
● Windows 、 Mac 、 Linux 、 Unix 版など、様々な OS で動作。
● オブジェクト指向、関数型言語の特徴を持つ。
しかし
● R 一文字って Google で検索し辛い。
● 検索結果が専門的すぎて素人お断り。
19. R のインストール
CRAN ( Comprehensive R Archive
Network )で提供されている。
For Windows
● http://www.r-project.org/
● プロジェクトページ =>CRAN から適当に探して Windows 向け
のインストーラを取得。とりあえず base パッケージをどうぞ。
For Linux
● 同じくプロジェクトページの CRAN から。
● Redhat 系、 Debian 系、 SUSELinux 、 ubuntu 向けにパッケー
ジが公開されている。
20. R の起動
二つのモードがある。
インタラクティブモード
● 一つ一つコマンドを打ち込んでその結果を確認しつつ動作させ
るもの。
● つまりはインタプリタ。
● デフォルトのモード。普通に起動するとこちらで動作する。
バッチモード
● あらかじめ R のコマンドを記述したスクリプトファイルを用意
し、それらを一括して起動させるモード。
● コマンドラインから $ R CMD BATCH 「スクリプトファイル」
で実行。
21. 演算子と制御構造①
演算子
● 一般的なスクリプト言語、オブジェクト指向言語にある基本的
なものはほとんど存在。
● + 、 - 、 * 、 / 、 ^ 、 < 、 > 、 == 、 != 、 && 、 || 、 ! 、など。
● 中々見ない記法のものは以下。
– %/% :整数除算
– %% : mod( 剰余 )
– <- :代入演算子
22. R の演算子と制御構造②
制御構造
● 一般的なスクリプト言語にある制御構造はやっぱり大体ある。
● for 、 while 、 if 、など。
● for はベクトル等を対象にすると便利な使い方が可能。
– といっても、最近の言語じゃこの程度当たり前か・・・
> for (n in Nile) print(n * 2)
23. R の変数と型①
変数
● 一般的な変数と同様。
● 宣言不要。
● 静的型付けではない。
● 同じ変数に別の型のデータを何度も入れ替えできる。
● 代入には【 <- 】演算子を使う。 = も効くが特殊なケースでうま
く動かないことがあるらしい。
> n <- c(1,3,5,9)
> m <- c(10,5,5,8)
24. R の変数と型②
変数の参照
● 変数名打って ENTER 叩くだけ。
● print( 変数名 )
● attributes( 変数名 )
● 変数名 $ 要素名 ( => 後述)
>n
>m
> print(n)
> print(m)
25. R の変数と型③
ベクトル型
● 同じ型のデータセット。
● c( 要素 1, 要素 2, ...) で生成できる。
● x[ インデックス番号 ] で参照できる。
● インデックスは1から始まる。
● 長さは length(x) で参照
> vec <- c(100,110,120,120,130)
> vec
> vec[2]
> vec[2:4]
26. R の変数と型④
文字、数字、ブール、文字列型
● 文字や数字は特に苦労なし。
● ブール値は「 TRUE 」、「 FALSE 」。 T 、 F で省略可能。
● 文字列型はダブルクォーティングで生成する。
● 文字列型は文字型のベクトルとなっている。
– というよりも、単なる文字型すら要素1の文字ベクトル。
– これは数値も同様で、単独の値は要素1のベクトル。
> str1 <- “teststr”
> str1
27. R の変数と型⑤
行列型
● 数学でいう n×m 行列。
● c( 要素 1, 要素 2, ...) で生成できる。
● 全要素が同じ型である。
● rbind (行結合)、 cbind (列結合)で、ベクトルを結合して作
る。
● インデックス二つで要素を指定する他、行のみ、列のみの指定
が可能。
> mtx1 <- rbind(c(1,5,6),c(2,6,7))
> mtx2 <- cbind(c(1,5,6),c(2,6,7))
> mtx1
> mtx2
> mtx1[1,2]
> mtx1[,2]
> mtx1[2,]
28. R の変数と型⑥
リスト型
● データ構造に出てくるいわゆる [ リスト ] とは無関係。
● 異なる型の値を複数保持できるもの。
● C 言語の構造体に近い。
● list() で作る。
● list の各要素にアクセスするには、
● 変数名 $ 要素名(スペース等開けない)
> l1 <- list(unit=2, val="str")
> l1
> l1$unit
29. R の変数と型⑦
データフレーム型
● 一言で行ってしまえば、 RDB のテーブルみたいなもの。
● 各カラムそれぞれ異なる型を持てる行列。
● 実際の中身としては、各要素が行列であるリスト、ということ
になっている。
● data.frame() で作成。
● 基本的には、このように作るよりも、 RDB やファイルなどから
Import する。
> df <- data.frame(list(uid=c("0001","0002","0003"),time=c(10,20,40)))
> df
> df$time
> df[,1]
30. R の変数と型⑧
変数出力、型調査など。
● print
● attributes()
● class()
● str() :オブジェクト構造を出力
関数定義
クラス作成
● 宿題。
● 関数自作の際、 return を省略すると最後の式の戻り値がそのま
ま return される。(ここだけチェックした・・・)
31. R のデータソース
Input
● RDB からデータ Input→ データフレームを作成
● ファイルからデータ Input→ データフレームを作成
● 量が大きくなればこの2パターンが主
> res <- read.table("exam_result",header=TRUE)
> res
> res$math
> mean(res$math)
34. R デモ
デモデータ
● R にはあらかじめデモデータが備わっています。
● data() で参照してみましょう。
35. 平均と分散、その他統計
デモデータを使った平均、分散、など
● mean(Orange$age)
● var(Orange$age)
● sd(Orange$age)
● mean(Nile)
● max(Nile)
● sum(Nile)
グラフ化(グラフィックスは次回の講義)
● hist(Orange$age)
37. ヘルプ
何が出てきても調べられるように、ヘルプ
の参照をチェック。
● help( 関数名 ) 、 ?” 関数名”
● help.search(“ キーワード” ) 、 ??” キーワード”→検索が走る。
● help(package= パッケージ名 ) で、パッケージマニュアル。
● example( 関数名 ) で、各関数の使用例とデモが出力される。
● example(lm) (線形モデル例)
● Google ではヒットさせ辛い。 R 言語専門の検索サイトなどを使
うのも手。 SeekR など。 http://seekr.jp/
38. その他
IDE
● 通常はコマンドラインで利用する。
● しかし IDE( 統合開発環境 ) も存在する。
● RStudio
– http://d.hatena.ne.jp/hiratake55/20120527/1338091311
● StatET ( Eclipse )
● ESS(emacs)
39. Summary
R を使ったら
● 本当に統計的な計算に向いている。他の言語に比べて。
– 例:発表者の以前作ったシェルスクリプト(ヒストグラム出
すまで)
– gnuplot を使ったが 226 行。
– R なら hist( データセット ) で終わり。
– 早いし楽。
● オブジェクトサイズ 2GB までという制限があり、巨大なデータ
セットには不向き。
● オブジェクト指向的要素、パフォーマンス、並列 R などはご興
味ありましたら各自で。
● グラフィックスは4章(次回)。
45. ※R は OSS です。ソースコードはこち
ら。
http://cran.md.tsukuba.ac.jp/src
CentOS6.3 のビルドツールチェインなら、特に苦労なくすんなり入った。