SlideShare ist ein Scribd-Unternehmen logo
1 von 100
Downloaden Sie, um offline zu lesen
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 !!

Weitere ähnliche Inhalte

Was ist angesagt?

DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ーDiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ーTakashi Yamane
 
はじめてのShiny
はじめてのShinyはじめてのShiny
はじめてのShinyKazuya Wada
 
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料nishioka1
 
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)Motoya Wakiyama
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれHiroshi Shimizu
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)Yoshitake Takebayashi
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
ベイズファクターとモデル選択
ベイズファクターとモデル選択ベイズファクターとモデル選択
ベイズファクターとモデル選択kazutantan
 
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータStanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータMiki Katsuragi
 
2 6.ゼロ切断・過剰モデル
2 6.ゼロ切断・過剰モデル2 6.ゼロ切断・過剰モデル
2 6.ゼロ切断・過剰モデルlogics-of-blue
 
一般化線形混合モデル isseing333
一般化線形混合モデル isseing333一般化線形混合モデル isseing333
一般化線形混合モデル isseing333Issei Kurahashi
 
Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定Hiroki Matsui
 
SNPデータ解析入門
SNPデータ解析入門SNPデータ解析入門
SNPデータ解析入門Amelieff
 
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールhoxo_m
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!takehikoihayashi
 
ベルヌーイ分布における超パラメータ推定のための経験ベイズ法
ベルヌーイ分布における超パラメータ推定のための経験ベイズ法ベルヌーイ分布における超パラメータ推定のための経験ベイズ法
ベルヌーイ分布における超パラメータ推定のための経験ベイズ法智文 中野
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Shintaro Fukushima
 
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...RのffでGLMしてみたけど...
RのffでGLMしてみたけど...Kazuya Wada
 

Was ist angesagt? (20)

DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ーDiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
 
はじめてのShiny
はじめてのShinyはじめてのShiny
はじめてのShiny
 
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
 
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
ベイズファクターとモデル選択
ベイズファクターとモデル選択ベイズファクターとモデル選択
ベイズファクターとモデル選択
 
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータStanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
 
2 6.ゼロ切断・過剰モデル
2 6.ゼロ切断・過剰モデル2 6.ゼロ切断・過剰モデル
2 6.ゼロ切断・過剰モデル
 
一般化線形混合モデル isseing333
一般化線形混合モデル isseing333一般化線形混合モデル isseing333
一般化線形混合モデル isseing333
 
Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定
 
SNPデータ解析入門
SNPデータ解析入門SNPデータ解析入門
SNPデータ解析入門
 
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツール
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
ベルヌーイ分布における超パラメータ推定のための経験ベイズ法
ベルヌーイ分布における超パラメータ推定のための経験ベイズ法ベルヌーイ分布における超パラメータ推定のための経験ベイズ法
ベルヌーイ分布における超パラメータ推定のための経験ベイズ法
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
 
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
2 3.GLMの基礎
2 3.GLMの基礎2 3.GLMの基礎
2 3.GLMの基礎
 

Ähnlich wie 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
 

Ähnlich wie 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を用いたデータハンドリング