Slide 1

Slide 1 text

はじめてのR @nonki1974 2017/07/07 fukuoka.R#08 20分で分かる!

Slide 2

Slide 2 text

R | 統計解析ソフトウェア・環境・言語 スクリプトでデータ分析手順を記録できる 異なるデータへの同じ処理の適用 豊富なパッケージ群(10000以上!) カスタマイズ可能な統計グラフィックス R Markdownによるレポートへの分析結果の埋め込み

Slide 3

Slide 3 text

Rのダウンロードとインストール CRAN:http://cran.r-project.org/ 国内ミラーサイト:http://cran.ism.ac.jp/

Slide 4

Slide 4 text

Rの起動 ここにコマンドを入力

Slide 5

Slide 5 text

簡易エディタ [Ctrl]+[r]でコンソールに 送られて実行される

Slide 6

Slide 6 text

Macでも [Command]+[Enter] でコンソールに 送られて実行される

Slide 7

Slide 7 text

Rの基本 データ構造 データ型 ベクトル 行列・配列 リスト データフレーム 整数型 実数型 論理型 文字列 因子型

Slide 8

Slide 8 text

ベクトル|データ構造の基本 > # 正規乱数を6個生成 > rnorm(6) [1] 0.005495013 -0.890328528 -0.263456883 [4] -1.157257872 1.834184513 0.045427708 行の先頭が何番目の 要素かを示している

Slide 9

Slide 9 text

ベクトル 数値も長さ1のベクトルとして扱われる! > 3+4 [1] 7

Slide 10

Slide 10 text

変数への代入 > x <- rnorm(2) > x [1] -0.6129402 0.9781342 代入記号は <- 変数+[Enter]で中身を表示

Slide 11

Slide 11 text

ベクトルの作成 > y <- c(3, 4.5) > y [1] 3.0 4.5 c()関数で値をつなげて ベクトルを作成

Slide 12

Slide 12 text

行列・配列 次元属性を持ったベクトル > x <- rnorm(6) > x [1] 0.18895713 -0.95296182 -0.44022548 [4] 1.16125533 0.69121613 0.00886386 > dim(x) <- c(2,3) > x [,1] [,2] [,3] [1,] 0.1889571 -0.4402255 0.69121613 [2,] -0.9529618 1.1612553 0.00886386 > x[2,3] [1] 0.00886386 > x[5] [1] 0.6912161

Slide 13

Slide 13 text

リスト データ型の異なる複数のベクトルや、 複数のリストを一括して保持できるデータ構造 分析結果はリストで返されることが多い > date <- "2017-07-07" > name <- c("コイキング", "イーブイ") > cp <- c(23, 182) > > pokemon <- list(date=date, name=name, cp=cp) > pokemon $date [1] "2017-07-07" $name [1] "コイキング" "イーブイ" $cp [1] 23 182

Slide 14

Slide 14 text

リスト | 要素の参照 > pokemon$name [1] "コイキング" "イーブイ" > pokemon[[2]] [1] "コイキング" "イーブイ" > pokemon[2] $name [1] "コイキング" "イーブイ" [[要素番号]] もしくは $要素名で オブジェクト自身を参照可能 [要素番号] の場合はリストが返される

Slide 15

Slide 15 text

データフレーム 行列風の外見を持つリスト 同じ大きさのベクトルを要素とする > name <- c("コイキング", "イーブイ", "フシギダネ") > cp <- c(23, 182, 128) > weight <- c(7.95, 7.54, 6.95) > height <- c(0.78, 0.32, 0.65) > df <- data.frame(name, cp, weight, height) > df name cp weight height 1 コイキング 23 7.95 0.78 2 イーブイ 182 7.54 0.32 3 フシギダネ 128 6.95 0.65

Slide 16

Slide 16 text

データフレーム|要素の参照 > df$cp [1] 23 182 128 > df[,2] [1] 23 182 128 > df[1,] name cp weight height 1 コイキング 23 7.95 0.78 > colnames(df) [1] "name" "cp" "weight" "height" > rownames(df) [1] "1" "2" "3"

Slide 17

Slide 17 text

csvファイルの読み込み | read.csv()関数 csvファイルを読み込んで、データフレームに格納 > setwd(“~/temp/work”) > pokemon <- read.csv("pokemon.csv") > head(pokemon[,c("id","name","CP","weight","height")]) id name CP weight height 1 2 フシギソウ 303 13.61 1.04 2 7 ゼニガメ 91 11.66 0.53 3 11 トランセル 83 3.41 0.63 4 15 スピアー 69 29.50 1.06 5 18 ピジョット 783 19.12 1.45 6 20 ラッタ 474 2.97 0.70

Slide 18

Slide 18 text

要約 | summary()関数 > summary(pokemon) id name CP sex Min. : 2.00 イーブイ : 2 Min. : 10.0 オス:45 1st Qu.: 54.25 アーボック: 1 1st Qu.: 142.8 なし: 4 Median :108.50 アズマオウ: 1 Median : 299.5 メス:23 Mean :107.44 イシツブテ: 1 Mean : 371.6 3rd Qu.:152.75 イトマル : 1 3rd Qu.: 506.2 Max. :226.00 ウソッキー: 1 Max. :1324.0 (Other) :65 HP weight height type1 Min. : 10.00 Min. : 0.120 Min. :0.1900 みず :15 1st Qu.: 31.00 1st Qu.: 5.122 1st Qu.:0.4475 ノーマル:13 Median : 48.50 Median : 11.125 Median :0.8800 むし : 8 Mean : 50.26 Mean : 23.148 Mean :0.9422 くさ : 7 3rd Qu.: 62.25 3rd Qu.: 31.545 3rd Qu.:1.2800 ほのお : 6 Max. :137.00 Max. :136.010 Max. :3.9800 いわ : 4 (Other) :19

Slide 19

Slide 19 text

要約の続き | summary()関数 type2 waza1 AP1 :39 たいあたり :12 Min. : 0.000 ひこう :10 みずてっぽう : 5 1st Qu.: 5.000 どく : 8 でんこうせっか: 4 Median : 6.500 エスパー: 3 ねんりき : 4 Mean : 8.167 じめん : 3 ひのこ : 4 3rd Qu.:10.000 いわ : 2 あわ : 3 Max. :20.000 (Other) : 7 (Other) :40 waza2 AP2 date pref こごえるかぜ : 4 Min. : 35.00 2017/6/20: 8 東京都: 2 10まんボルト: 3 1st Qu.: 55.00 2016/7/24: 6 福岡県:70 アクアテール : 3 Median : 70.00 2016/7/25: 4 ニトロチャージ: 3 Mean : 73.53 2016/7/26: 4 ヘドロばくだん: 3 3rd Qu.: 90.00 2016/7/27: 4 わるあがき : 3 Max. :180.00 2016/7/30: 4 (Other) :53 (Other) :42 city 江東区 : 1 港区 : 1 福岡市中央区: 6 福岡市東区 :10 福岡市南区 :54

Slide 20

Slide 20 text

プロットの例 > plot(height~weight, data=pokemon) > hist(pokemon$CP)

Slide 21

Slide 21 text

パッケージのインストール&ロード > # パッケージのインストール > install.packages(c("ggplot2", "dplyr")) > # パッケージのロード > library(ggplot2) > library(dplyr)

Slide 22

Slide 22 text

パッケージ利用例 | dplyr & ggplot2 > pokemon %>% + select(CP, weight, height, type1) %>% + group_by(type1) %>% + summarise_all(mean) %>% + ggplot(aes(weight, height, label=type1)) + + geom_text(aes(color=type1), size=8) + + theme_bw(base_size=20) + + theme(legend.position="none")

Slide 23

Slide 23 text

出力結果

Slide 24

Slide 24 text

次のステップとして・・・ • RStudio • 欠損値 • 因子型(factor) • dplyrパッケージ • 文字列処理 • apply系関数群 • R Markdown

Slide 25

Slide 25 text

書籍 分析手法の説明 +Rでの実行例 グラフ作成の リファレンス R言語全般の リファレンス

Slide 26

Slide 26 text

enjoy!