SlideShare una empresa de Scribd logo
1 de 100
Descargar para leer sin conexión
dplyr & purrr を⽤いたデータハンドリング
About Me
• 杣取 恵太(そまとり けいた)
• 専修⼤学⼤学院⽂学研究科⼼理学専攻 博⼠2年
• ⽇本学術振興会 特別研究員(DC1)
• 研究テーマ:
⎻ 恐怖条件づけの個⼈差
⎻ メタ認知の認知モデリング
• 趣味:
⎻ ⿇雀、ダーツ
本資料の内容
dplyr と purrr(ちょこっとtidyr)を使って
データを楽にハンドリングする!
tidyverseワークフローにおける本資料の位置付け
データの
読み込み
可視化
モデル化
dplyr
purrr
整然化 変形
プログラミング
本発表で使うパッケージ
library(tidyverse)
library(stringr)
まずはデータの読み込み
データの
読み込み
整然化 変形 可視化
モデル化プログラミング
扱うデータの確認
平成26年度患者調査56: 精神科病院の推計患者数,年齢階級 × 性・疾病分類(精神及び⾏動の障害) × ⼊院-外来別
(https://www.e-stat.go.jp/SG1/estat/GL08020103.do?_toGL08020103_&listID=000001141596&requestSender=dsearch)
タイトル⾏
性別を表すセルが1つだけ
⽋測がハイフン
突然の要約量
• 解析しやすいようにデータを記録する。
もちろん本当は
• 解析しやすいようにデータを記録する。
• 汚いデータをなんとか読み込んでうまいこと
ハンドリングする
⇨ tidyverse
今回は
なるべく綺麗に読み込む
outpatient_26 <- readr::read_csv(“26.csv”, ## 平成26年の調査データ ---
locale = readr::locale(encoding = "cp932"),
skip = 2)
view(outpatient_26) ## データの確認
整然データ化
データの
読み込み
整然化 変形 可視化
モデル化プログラミング
slice()
• 特定の⾏のみ抜き出し(削除)
slice()
outpatient_ 26 < outpatient_26 %>%
slice(5:8)
5-8⾏⽬を
抜き出す
filter()
• 特定の値を含む⾏を取り出す
◯
◯
×
×
▲
filter()
outpatient_ 26 < outpatient_26 %>%
filter(X2 !="総数")
“X2”列の中
で”総数”と
いう値以外
の⾏を残す
select()
• 特定の列を取り出す(削除)
select()
outpatient_ 26 < outpatient_26 %>%
select(-3)
3列⽬を削除
select()
outpatient_ 26 < outpatient_26 %>%
select(-23:-26)
23-26⾏⽬も削除
ここまで3つのまとめ
slice(): ⾏操作 filter(): (列の値で)⾏操作
◯
◯
×
×
▲
select(): 列操作
ここまでの関数を使ってデータを整形してみる
outpatient_26 <- outpatient_26 %>%
fill(X1) %>% ## X1を前の値で埋める(男, 男, 男, ...となる) ---
slice(46:63) %>% ## 46-63⾏⽬を抜き出す ---
filter(X2 !="総数") %>% ## ”X2”列の値が”総数”以外の⾏を残す ---
filter(X2 !="(再掲)精神及び⾏動の障害") %>%
select(-3) %>% ## 3列⽬を削除 ---
select(-23:-26) %>%
## “X1”を”sex”に、”X2”を” disease_name”に ---
rename(sex=X1, disease_name=X2)
それなりに綺麗な形になる
ここの部分が整然
データっぽくない
tidyr::gather()でロングデータにする
outpatient_26 <- outpatient_26 %>%
tidyr::gather(`0歳`:90歳以上,
key=age,value="count")
0歳 90歳
以上
age count
0歳 2.0
0歳 -
… -
… 1.0
… -
90歳以上 0.5
90歳以上 -
90歳以上 10.0
“0歳”から”90歳”以上の列までのデータを縦に展開する。その際、元々の列名
は”age”という列名にして、各セルの値は”count”という列名にする。
今度こそそれっぽい形になった
• ⽋測値をNAにしたい
• データ形をnumericにしたい
• 謎のスペースを消したい
最後に微調整する
## ”count”列の値が”-”になっていればNAに変換 ---
outpatient_26$count <- ifelse(outpatient_26$count=="-", NA,
outpatient_26$count)
## ”desease_name”列の各セルにあるスペースを削除 ---
outpatient_26$disease_name <- str_trim(outpatient_26$disease_name,
side="both")
## ”count”列の各セルを数値型にする ---
outpatient_26$count <- as.numeric(outpatient26_$count)
完成
データをいじってみる
データの
読み込み
整然化 変形 可視化
モデル化プログラミング
統合失調症について、外来患者数をまとめたい
• “disease_name”列の値が”統合
失調症、統合失調型障害及び妄
想性障害”となっている⾏を抜き
出す。
• NAは今回無視したいので、
“count”列がNAではない⾏を抜
き出す
filter()でデータの抜き出し
## ” disease_name”列の値が統合失調症の⾏だけ取り出す ---
## ”count”列の値がNAの⾏は削除 ---
schizo <- outpatient_26 %>%
filter(disease_name == "統合失調症,
統合失調症型障害及び妄想性障害",
!is.na(count))
sex disease_name age count
… … … …
… 統合失調症 … NA
… 統合失調症 ... 1,5
… … … …
… 統合失調症 … 3.0
完成
ggplot()で可視化する
データの
読み込み
整然化 変形 可視化
モデル化プログラミング
年齢ごとに外来患者数をプロット
ggplot(data = schizo) +
geom_bar(aes(x=age,y=count),stat="identity") +
## Macの場合はフォント指定しないと⽂字化ける ---
theme_set(theme_gray(base_family="Hiragino Kaku Gothic Pro W3")) +
## グラフが浮くのを防ぐ ---
scale_y_continuous(expand = c(0,0))
外来患者数の多い疾患トップ10が知りたい
• 列の値を使って⾏を並び替えたい
• カテゴリ変数について可視化した時にみやすくしたい
• 上位と下位に分けたい
1
2
3
4
5
2
1
4
3
5
arrange()
• ⾏を並び替える
1
2
3
4
5
2
1
4
3
5
arrange()
## ”count”列の値で並び替える ---
## desc()を使うと降順、使わなければ昇順になる ---
top10 <- outpatient_26 %>%
arrange(desc(count))
## top10の1-10⾏⽬を出⼒ ---
top10 <- top10[1:10,]
並び替えた結果
• 男性が多い
• 40-60代が多い
疾患ごとの平均外来患者数が知りたい
age count
気分障害 0歳 2.0
… 0歳 NA
気分障害 … NA
気分障害 90歳以上 0.5
気分障害 90歳以上 NA
統合失調症 0歳 0
統合失調症 0歳 0
… … NA
統合失調症 90歳以上 2.0
神経症性障害 0歳 1.4
神経腫性障害 0歳 …
mean
気分障害 2.0
統合失調症 1.2
神経症性障害 3
アルコール障害 0.5
その他 2
• 疾患ごとに平均外来患者数を算出して、
外来患者の多い疾患が知りたい
summarize()
• 関数をまとめて適⽤する
• データの要約に便利
summarize()
## max_mean_minという変数にsummarize()の結果を保存 ---
temp <- outpatient_26 %>%
## ”count”列の値にmax()を適⽤した結果を”max”列に ---
summarize(max = max(count,na.rm=T),
## ”count”列の値にmean()を適⽤した結果を”mean”列に ---
mean = mean(count,na.rm=T),
## ”count”列の値にmin()を適⽤した結果を”min”列に ---
min = min(count,na.rm=T))
## na.rm=Tは「NAを無視して関数を適⽤してね」という意味 ---
全部まとめて関数を適⽤している
• これだともうなんなのかよく分からない
Desease_name count
気分障害
統合失調症
統合失調症
気分障害
気分障害
group_by()
• summarize()の仲間みたいな関数
• 列の値に従って、複数の⾏をグループ化する
group_by() & summarize()
temp <- outpatient_26 %>%
## “desease_name”列の値ごとにgroup化 ---
group_by(desease_name) %>%
## グループごとに、” count”列の値について平均&標準偏差を算出 ---
summarize(mean = mean(count, na.rm = T),
sd = sd(count, na.rm = T))
グループの情報は⽬に⾒えない形で存在し、
以降の関数適⽤では常に考慮される
→ ungroup()でグループ化解除
疾患ごとに要約統計量を算出できた
統合失調症が群を抜いて多い
この集計で満⾜して良いのか?
• arrange()を使った時の感じだと性
差はそれなりにありそう
• 標準偏差が結構⼤きい
→ もう少し細かくグループ化を!
疾患ごと、性別ごとに平均と標準偏差を出す
temp <- outpatient_26 %>% ## 追加のグループ化は簡単にできる ---
group_by(disease_name,sex) %>%
summarize(mean = mean(count, na.rm = T),
sd = sd(count, na.rm = T))
気分障害は⼥性に多いが、統合失調症は男性に多い
mutate()
• 新しい列を作る
標準化得点算出して結合する
## 全体の平均と標準偏差を出す ---
temp <- outpatient_26 %>%
summarize(mean = mean(count, na.rm = T),
sd = sd(count, na.rm = T))
## (“count”列の値ー平均)/標準偏差をすることで、標準化 ---
## 標準化得点を新しい列として結合 ---
temp <- outpatient_26 %>%
mutate(stan_score = (count - temp$mean)/temp$sd)
sex desease_name age count sex desease_name age count stan_score
改めて平均・標準偏差とエラーバーの上限・下限を計算
temp <- temp %>%
## 疾患ごと、性別ごとにグループ化 ---
group_by(disease_name, sex) %>%
## グループごとに”stan_socre”列の平均と標準偏差を算出 ---
summarize(mean = mean(stan_score, na.rm = T),
sd = sd(stan_score, na.rm = T)) %>%
## 上限を平均+標準偏差、下限を平均-標準偏差として計算し、 ---
## 新しい列として結合 ---
mutate(upper = mean + sd,
lower = mean - sd)
難しくなってきたのでイメージ図
sex desease_name age count sex desease_name age count
group_by
sex desease_name mean sd
summarize
mutate
sex desease_name mean sd upper lower
完成
可視化: 統合失調症は外来患者数が多く、性差も⼤きい
おまけ:
演算⼦と論理式
演算⼦のバリエーション
• A > B: AはBより⼤きい
• A >= B: AはBと等しいかそれより⼤きい
• A <= B: AはBと等しいかそれより⼩さい
• A != B: AはBと等しくない
• A == B: AとBは等しい
演算⼦を⽤いる時の注意点
## どちらも、2.00..., 1.00...となるため
sqrt(2)^2 == 2
# FALSE
1/49 * 49 == 1
# FALSE
• ⼀度計算を挟んでしまうと、FALSEになってしまう
## near()を使うと解決する
near(Sqrt(2)^2, 2)
# TRUE
near(1/49 * 49, 1)
# TRUE
論理式を書くときの注意点
• 基本的には、「左の条件に適合する」もののうち、
「右の条件にも適合する」もの、となる
x y
!x & y
x & y
x & !y
x
xor(x, y)
y
x or y
Data Transformation with dplyr.
• コア関数
⎻ slice(): ⾏抽出
⎻ filter(): (列の値で)⾏抽出
⎻ select(): 列抽出
⎻ arrange(): 並び替え
⎻ summarize(): 関数の⼀括適⽤
データの整形、加⼯を効率良くやる関数が豊富
他にも、distinct(), sample_flac(), count...etc
Rstudioチーとシート(https://www.rstudio.com/resources/cheatsheets/)
複数のデータセットを結合したい
A病院 B病院 C病院
複数のデータセットを結合したい
2006年 2010年 2014年
join()
• 複数のデータフレームを結合する
結合するデータセット間に共通の紐付けKeyをもとに
データを結合する。
x
ID value
1 x1
2 x2
3 x3
y
ID value
1 y1
2 y2
4 y4
x_y
ID value_x value_y
1 x1 y1
2 x2 y2
紐付けkeyのIDをもとにすると、データフレームyには
ID 3, 4のデータがないので、無視される。
Inner join
Left join
x
ID value
1 x1
2 x2
3 x3
y
ID value
1 y1
2 y2
4 y4
x_y
ID value_x value_y
1 x1 y1
2 x2 y2
3 x3 NA
ID3: データフレームxにはあるがyにはない ⇨ ⽋測
ID4: データフレームyにはあるがxにはない ⇨ 無視
左のデータセットにある値を紐付けKeyとして、右の
データセットをくっつける。
x
ID value
1 x1
2 x2
3 x3
y
ID value
1 y1
2 y2
4 y4
x_y
ID value_x value_y
1 x1 y1
2 x2 y2
4 NA y4
ID3: データフレームxにはあるがyにはない ⇨ 無視
ID4: データフレームyにはあるがxにはない ⇨ ⽋測
Right join
右のデータセットにある値を紐付けKeyとして、右の
データセットをくっつける。
Full join
x
ID value
1 x1
2 x2
3 x3
y
ID value
1 y1
2 y2
4 y4
x_y
ID value_x value_y
1 x1 y1
2 x2 y2
3 x3 NA
4 NA y4
対応しないデータは⽋測扱いで残す
結合するデータセットにあるすべての⾏を結合する
平成20, 23, 26年度のデータを結合する
l これまで使ってきたデータ
平成26年度患者調査56: 精神科病院の推計患者数,年齢階級 × 性・疾病分類(精神及び⾏動の
障害) × ⼊院-外来別(https://www.e-
stat.go.jp/SG1/estat/GL08020103.do?_toGL08020103_&listID=000001141596&reques
tSender=dsearch)
l これから結合するデータ
⎻ 平成23年度患者調査56: 精神科病院の推計患者数,年齢階級 × 性・疾病分
類(精神及び⾏動の障害) × ⼊院-外来別(https://www.e-
stat.go.jp/SG1/estat/GL08020103.do?_toGL08020103_&listID=0000
01103073&requestSender=dsearch)
⎻ 平成20年度患者調査56: 精神科病院の推計患者数,年齢階級 × 性・疾病分
類(精神及び⾏動の障害) × ⼊院-外来別(https://www.e-
stat.go.jp/SG1/estat/GL08020103.do?_toGL08020103_&listID=0000
01060228&requestSender=dsearch)
## by= が結合するためのkey ---
## disease_name, age, sexの値で結合する ---
join_data <- outpatient_26 %>%
inner_join(outpatient_23,
by = c(“disease_name” = "disease_name", "age” = "age", "sex” = "sex")) %>%
inner_join(outpatient_20,
by = c("disease_name” = "disease_name", "age” = "age", "sex” = "sex"))
Inner_join()
本来、紐付けKeyは1つで良いのに、なぜ複数設定するのか?
同じ値をもつ列が複数あるとややこしいデータになる
x
disease
_name
value
〇〇 x1
×× x2
△△ x3
〇〇 x4
y
disease
_name
value
〇〇 y1
×× y2
〇〇 y3
x y
disease
_name
Value_x Value_y
〇〇 x1 y1
〇〇 y1 y3
×× x2 y2
〇〇 x4 y1
〇〇 x4 y3
紐付けKey列内に、同⼀の値を持つ要素があると、
対応するそれぞれの組み合わせを⽣成してしまう。
なんかちょっと違う
“count.x”とか”count.y”とかがよく分からない
# outpatient20の⼀部の列を削除、countの列名を変更 ---
outpatient_20 <- outpatient_20 %>%
rename(year_20 = count)
# outpatient23の⼀部の列を削除、countの列名を変更 ---
outpatient_23 <- outpatient_23 %>%
rename(year_23 = count)
# outpatient26の⼀部の列を削除、countの列名を変更 ---
outpatient_26 <- outpatient_26 %>%
rename(year_26 = count)
各データセットの”count”列の名前を変更する
## by= が結合するためのkey ---
## disease_name, age, sexの値で結合する ---
join_data <- outpatient_26 %>%
inner_join(outpatient_23,
by = c("disease_name" = "disease_name",
"age" = "age", "sex" = "sex")) %>%
inner_join(outpatient_20,by = c("disease_name" = "disease_name",
"age" = "age", "sex" = "sex")) %>%
gather(year_26:year_20, key = year, value = "count", na.rm=T)
改めてinner_join(): ついでにロングデータにしておく
うまいこと結合できている
purrr()でコードを要約 & 可読性UP
データの
読み込み
整然化 変形 可視化
モデル化プログラミング
速くて読みやすい、コードの書く
関数を駆使して、なるべくコピペをしない!そのメリットは次の3点
l コードの⽬的をすぐに理解することができる
l コードの修正が容易
l エラーが少なくなる
例えばこんな時
気分障害の年齢別外来患者数が、調査
年度でどう変わるかしりたいなぁ
コピペして書く
dep_20 <- join_data %>%
filter(disease_name == "気分[感情]障害(躁うつ病を含む)",
year == "year_20") %>%
group_by(age) %>%
summarize(mean = mean(count, na.rm = T))
dep_23 <- join_data %>%
filter(disease_name == "気分[感情]障害(躁うつ病を含む)",
year == "year_23") %>%
group_by(age) %>%
summarize(mean = mean(count, na.rm = T))
dep_26 <- join_data %>%
filter(disease_name == "気分[感情]障害(躁うつ病を含む)",
year == "year_26") %>%
group_by(age) %>%
summarize(mean = mean(count, na.rm = T))
個別に可視化する
20年度 23年度
26年度
• (年度でそんなに違わないこと
も)分かる
• でも疾患ごとグラフ化しよう
とすると急に⼤変に。。。
temp <- join_data %>%
group_by(disease_name, age, year) %>%
summarize(mean = mean(count, na.rm=T))
コピペをせずに、dplyrを駆使して⼀気にやる
3年分をまとめたデータについて、
疾患ごと、年齢ごと、年度ごとに男⼥の平均を算出する
各疾患の年齢別外来患者数が、調査
年度でどう変わるかしりたいなぁ
まとめて可視化、facet_wrap()で疾患別・年度別にする
• すべてのグラフが1つにまとまってしまうので、⼤変みづらい
これまで⽅法では・・・
• コピペで書く
⎻ 個別のデータセットになるので綺麗にグラフ
化できるけど、分析対象が増えると⾯倒。
• dplyrで⼀気に書く
⎻ 分析対象が増えても⼿間は同じだけど、1つ1
つのdデータが⾒にくくなる。
どっちも避けたい!!!!
⽬的: コピペせずに解析結果を⾒やすくしたい
• ⼀気に処理できるコードを書く
⎻ コピペしなくて済む
⦁ データセットを個別にする
⎻ グラフが⾒やすくなる
purrrによる⼀括処理 & リスト型化
リスト型とは
• 様々な構造を持つ個別のデータを1つにまとめたもの
$ 統合失調症
$ 気分障害
・
・
・
「疾患ごと・年度ごと」に個別の
データセットにした上で、1つの
オブジェクトにできる
disease
_name
sex age count
disease
_name
sex age count
purrr:: map()
temp <- join_data %>%
## “disease_name”列と”year”列の値ごとにリスト型化する ---
## %>%を使うと、「.」で変数名を省略できる ---
split(list(.$disease_name, .$year)) %>%
## map(): リストに関数をまとめて適⽤する ---
## リスト内の各データを”age”列の値でグループ化 ---
map(group_by, age) %>%
## リスト内の各データについて、 ---
## グループごとに”count”列の平均を算出 ---
map(summarize, mean = mean(count, na.rm = T))
これでコピペの必要なし!
例によって複雑なのでイメージ図
sex desease_name age count
split group_by
sex age count
$ 統合失調症
$ 気分障害
sex age count
sex age count
$ 統合失調症
$ 気分障害
sex age count
age mean
$ 統合失調症
$ 気分障害
summarize
age mean
データがどうなっているかを確認してみる
疾患ごと・年度ごとの
データになっている
年齢ごとに外来患者数
の平均が並んでいる
リストの中から任意のデータセットを取り出す⽅法
• 最近のRstudioは検索候補(?)みたいなものを出してくれる
20年度調査における統合失調症の外来患者数
temp$`統合失調症,統合失調症型障害及び妄想性障害.year_20` %>%
ggplot() +
geom_bar(aes(x = age, y = mean), stat = "identity") +
theme_set(theme_gray(base_family = "Hiragino Kaku Gothic Pro W3"))+
scale_y_continuous(expand = c(0,0))
解析もリスト化できる
どうせならグラフもリスト化して
すぐ取り出せるようにしたいなぁ
可視化したグラフもリストにいれたい
## 可視化のための関数を⾃作する ---
## 先ほどまで使っていたggplot()の関数をデータだけ⼊れれば描けるように関数化 ---
geo_hist <- function(data){
ggplot(data) +
geom_bar(aes(x = age, y = mean), stat = "identity") +
theme_set(theme_gray(base_family = "Hiragino Kaku Gothic Pro W3")) +
scale_y_continuous(expand = c(0,0))
}
temp <- join_data %>%
split(list(.$disease_name, .$year)) %>%
map(group_by, age) %>%
map(summarize, mean = mean(count, na.rm = T)) %>%
map(geo_hist) ## リスト内の各データに⾃作した関数を適⽤ ---
任意のグラフを簡単に取り出せる
「26年度調査のアルコール依
存症のデータ」が⾒たいなぁ
解析もリスト化できる
疾患ごとにいろいろ分析したいけど、結
果が膨⼤になりそうだなぁ
コピペするのはめんどくさい・・・
例えばこんなデータ
• 横軸: 20年度調査における気分障害
の平均外来患者数(年齢ごと)
• 縦軸: 26年度調査における各疾患の
平均外来患者数(年齢ごと)
疾患によって、気分障害の外来
患者数との関連は異なりそう
こんな⾵に回帰直線が引けるかも?
疾患ごとに回帰式を当てはめる
outpatient_26 %>%
## 疾患ごとにリスト化する ---
split(.$disease_name) %>%
## 26年度の外来患者数を20年度の気分障害の外来患者数で回帰 ---
## lm()は回帰分析を⾏う関数 lm(従属変数 ~ 独⽴変数) ---
map(~lm(count ~ dep, data = .)) %>%
## 解析結果をまとめる ---
## 分散説明率や係数などを素敵なリストにまとめてくれる ---
map(summary) %>%
## まとめの中から、係数に関するところを抽出 ---
map("coefficients")
疾患ごとに回帰式を当てはめる
気分障害の外来患者数は、
6年後の統合失調症の外来
患者数を予測する
map()の仲間たち
返り値を調整する系
• map_lg() : factor型
• map_chr() : character型
• map_int() : integer型
• map_dbl() : double型
複数リストに適⽤する系
• map2() : 引数に2つのリスト
• map3() : 引数に3つのリスト
• map_n() : 引数に3つ以上のリスト
どれだけ複雑なデータセット
にも対応可能!
まとめ
整然化 変形
プログラミング
filter(), mutate(), group_by(), summarize()et....etc:
データセットの必要部分を抽出、結合、要約
join(): 複数データセットの結合
map(): 効率よく、ミスの少ないコーディング
Enjoy Data Handling !!

Más contenido relacionado

La actualidad más candente

MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデルHiroshi Shimizu
 
Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?jundoll
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編Hiroshi Shimizu
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Shintaro Fukushima
 
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力imuyaoti
 
データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析Seiichi Uchida
 
21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)Toru Imai
 
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR  #11「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR  #11
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11Koichi Hamada
 
Rで計量時系列分析~CRANパッケージ総ざらい~
Rで計量時系列分析~CRANパッケージ総ざらい~ Rで計量時系列分析~CRANパッケージ総ざらい~
Rで計量時系列分析~CRANパッケージ総ざらい~ Takashi J OZAKI
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理wada, kazumi
 
混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム貴之 八木
 
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデルMasashi Komori
 
主成分分析(Pca)
主成分分析(Pca)主成分分析(Pca)
主成分分析(Pca)Shushi Namba
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!TransformerArithmer Inc.
 
心理学のためのPsychパッケージ
心理学のためのPsychパッケージ心理学のためのPsychパッケージ
心理学のためのPsychパッケージ考司 小杉
 
Hyperoptとその周辺について
Hyperoptとその周辺についてHyperoptとその周辺について
Hyperoptとその周辺についてKeisuke Hosaka
 
Rで学ぶ回帰分析と単位根検定
Rで学ぶ回帰分析と単位根検定Rで学ぶ回帰分析と単位根検定
Rで学ぶ回帰分析と単位根検定Nagi Teramo
 
Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定Hiroki Matsui
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 

La actualidad más candente (20)

MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデル
 
Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
 
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力
 
データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析
 
21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)
 
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR  #11「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR  #11
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11
 
Rで計量時系列分析~CRANパッケージ総ざらい~
Rで計量時系列分析~CRANパッケージ総ざらい~ Rで計量時系列分析~CRANパッケージ総ざらい~
Rで計量時系列分析~CRANパッケージ総ざらい~
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
 
混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム
 
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
 
主成分分析(Pca)
主成分分析(Pca)主成分分析(Pca)
主成分分析(Pca)
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!Transformer
 
心理学のためのPsychパッケージ
心理学のためのPsychパッケージ心理学のためのPsychパッケージ
心理学のためのPsychパッケージ
 
Hyperoptとその周辺について
Hyperoptとその周辺についてHyperoptとその周辺について
Hyperoptとその周辺について
 
Rで学ぶ回帰分析と単位根検定
Rで学ぶ回帰分析と単位根検定Rで学ぶ回帰分析と単位根検定
Rで学ぶ回帰分析と単位根検定
 
Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定
 
因果推論の基礎
因果推論の基礎因果推論の基礎
因果推論の基礎
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 

Similar a dplyr と purrrを用いたデータハンドリング

データ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることデータ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることMasaru Tokuoka
 
ae-11. 実データの分析,意味の抽出,外れ値の判断
ae-11. 実データの分析,意味の抽出,外れ値の判断ae-11. 実データの分析,意味の抽出,外れ値の判断
ae-11. 実データの分析,意味の抽出,外れ値の判断kunihikokaneko1
 
Rm20140507 4key
Rm20140507 4keyRm20140507 4key
Rm20140507 4keyyouwatari
 
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッションYamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション考司 小杉
 
forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析Satoshi Kato
 
統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践id774
 
An introduction to statistical learning 4 logistic regression manu
An introduction to statistical learning 4 logistic regression manuAn introduction to statistical learning 4 logistic regression manu
An introduction to statistical learning 4 logistic regression manuHideyuki Takahashi
 
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度Seiichi Uchida
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京Yohei Sato
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へZansa
 
Information retrieval model
Information retrieval modelInformation retrieval model
Information retrieval modelYuku Takahashi
 
K020 appstat201202
K020 appstat201202K020 appstat201202
K020 appstat201202t2tarumi
 
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析Yohei Sato
 
Stat r 9_principal
Stat r 9_principalStat r 9_principal
Stat r 9_principalfusion2011
 
K030 appstat201203 2variable
K030 appstat201203 2variableK030 appstat201203 2variable
K030 appstat201203 2variablet2tarumi
 
SappoRo.R #2 初心者向けWS資料
SappoRo.R #2 初心者向けWS資料SappoRo.R #2 初心者向けWS資料
SappoRo.R #2 初心者向けWS資料考司 小杉
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までデータサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までShunsuke Nakamura
 

Similar a dplyr と purrrを用いたデータハンドリング (20)

データ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることデータ入力が終わってから分析前にすること
データ入力が終わってから分析前にすること
 
ae-11. 実データの分析,意味の抽出,外れ値の判断
ae-11. 実データの分析,意味の抽出,外れ値の判断ae-11. 実データの分析,意味の抽出,外れ値の判断
ae-11. 実データの分析,意味の抽出,外れ値の判断
 
Rm20140507 4key
Rm20140507 4keyRm20140507 4key
Rm20140507 4key
 
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッションYamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション
 
forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析
 
統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践
 
An introduction to statistical learning 4 logistic regression manu
An introduction to statistical learning 4 logistic regression manuAn introduction to statistical learning 4 logistic regression manu
An introduction to statistical learning 4 logistic regression manu
 
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
 
Information retrieval model
Information retrieval modelInformation retrieval model
Information retrieval model
 
K020 appstat201202
K020 appstat201202K020 appstat201202
K020 appstat201202
 
Maeshori missing
Maeshori missingMaeshori missing
Maeshori missing
 
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
 
Stat r 9_principal
Stat r 9_principalStat r 9_principal
Stat r 9_principal
 
Dbda chapter15
Dbda chapter15Dbda chapter15
Dbda chapter15
 
K030 appstat201203 2variable
K030 appstat201203 2variableK030 appstat201203 2variable
K030 appstat201203 2variable
 
SappoRo.R #2 初心者向けWS資料
SappoRo.R #2 初心者向けWS資料SappoRo.R #2 初心者向けWS資料
SappoRo.R #2 初心者向けWS資料
 
Machine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEEMachine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEE
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までデータサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
 

dplyr と purrrを用いたデータハンドリング