Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのR@fukuoka.R#08
Search
nonki1974
July 07, 2017
Technology
0
560
はじめてのR@fukuoka.R#08
nonki1974
July 07, 2017
Tweet
Share
More Decks by nonki1974
See All by nonki1974
GTFS with Tidytransit package
nonki1974
0
300
TokyoR#84_Rexams
nonki1974
0
200
都道府県別焼き鳥屋ランキングの作成
nonki1974
1
880
Introduction to R
nonki1974
0
330
Introduction to dplyr
nonki1974
0
470
Introduction to ggplot2
nonki1974
1
500
Analyzing PSB tracks with R
nonki1974
0
580
introduction to fukuoka.R @ Fukuoka.LT
nonki1974
0
59
所要時間のヒートマップを作成する
nonki1974
0
530
Other Decks in Technology
See All in Technology
人と組織に偏重したEMへのアンチテーゼ──なぜ、EMに設計力が必要なのか/An antithesis to the overemphasis of people and organizations in EM
dskst
7
730
Goss: Faiss向けの新しい本番環境対応 Goバインディング #coefl_go_jp
bengo4com
1
1.4k
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
520
つくって納得、つかって実感! 大規模言語モデルことはじめ
recruitengineers
PRO
29
11k
実践アプリケーション設計 ①データモデルとドメインモデル
recruitengineers
PRO
5
1.2k
コスト削減の基本の「キ」~ コスト消費3大リソースへの対策 ~
smt7174
2
280
クラウドセキュリティを支える技術と運用の最前線 / Cutting-edge Technologies and Operations Supporting Cloud Security
yuj1osm
2
150
ZOZOTOWNフロントエンドにおけるディレクトリの分割戦略
zozotech
PRO
18
5.9k
浸透しなさいRFC 5322&7208
hinono
0
130
エキサイトブログの トップページを 段階的にリプレイスする
zsp2088dev
0
120
現場が抱える様々な問題は “組織設計上” の問題によって生じていることがある / Team-oriented Organization Design 20250827
mtx2s
7
63k
制約理論(ToC)入門
recruitengineers
PRO
8
3.3k
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
For a Future-Friendly Web
brad_frost
179
9.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
185
54k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Visualization
eitanlees
147
16k
Thoughts on Productivity
jonyablonski
69
4.8k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Become a Pro
speakerdeck
PRO
29
5.5k
Building an army of robots
kneath
306
46k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Transcript
はじめてのR @nonki1974 2017/07/07 fukuoka.R#08 20分で分かる!
R | 統計解析ソフトウェア・環境・言語 スクリプトでデータ分析手順を記録できる 異なるデータへの同じ処理の適用 豊富なパッケージ群(10000以上!) カスタマイズ可能な統計グラフィックス R Markdownによるレポートへの分析結果の埋め込み
Rのダウンロードとインストール CRAN:http://cran.r-project.org/ 国内ミラーサイト:http://cran.ism.ac.jp/
Rの起動 ここにコマンドを入力
簡易エディタ [Ctrl]+[r]でコンソールに 送られて実行される
Macでも [Command]+[Enter] でコンソールに 送られて実行される
Rの基本 データ構造 データ型 ベクトル 行列・配列 リスト データフレーム 整数型 実数型 論理型
文字列 因子型
ベクトル|データ構造の基本 > # 正規乱数を6個生成 > rnorm(6) [1] 0.005495013 -0.890328528 -0.263456883
[4] -1.157257872 1.834184513 0.045427708 行の先頭が何番目の 要素かを示している
ベクトル 数値も長さ1のベクトルとして扱われる! > 3+4 [1] 7
変数への代入 > x <- rnorm(2) > x [1] -0.6129402 0.9781342
代入記号は <- 変数+[Enter]で中身を表示
ベクトルの作成 > y <- c(3, 4.5) > y [1] 3.0
4.5 c()関数で値をつなげて ベクトルを作成
行列・配列 次元属性を持ったベクトル > 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
リスト データ型の異なる複数のベクトルや、 複数のリストを一括して保持できるデータ構造 分析結果はリストで返されることが多い > 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
リスト | 要素の参照 > pokemon$name [1] "コイキング" "イーブイ" > pokemon[[2]]
[1] "コイキング" "イーブイ" > pokemon[2] $name [1] "コイキング" "イーブイ" [[要素番号]] もしくは $要素名で オブジェクト自身を参照可能 [要素番号] の場合はリストが返される
データフレーム 行列風の外見を持つリスト 同じ大きさのベクトルを要素とする > 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
データフレーム|要素の参照 > 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"
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
要約 | 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
要約の続き | 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
プロットの例 > plot(height~weight, data=pokemon) > hist(pokemon$CP)
パッケージのインストール&ロード > # パッケージのインストール > install.packages(c("ggplot2", "dplyr")) > # パッケージのロード
> library(ggplot2) > library(dplyr)
パッケージ利用例 | 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")
出力結果
次のステップとして・・・ • RStudio • 欠損値 • 因子型(factor) • dplyrパッケージ •
文字列処理 • apply系関数群 • R Markdown
書籍 分析手法の説明 +Rでの実行例 グラフ作成の リファレンス R言語全般の リファレンス
enjoy!