Suche senden
Hochladen
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
•
97 gefällt mir
•
26,315 views
Nagi Teramo
Folgen
第30回R勉強会@東京(#TokyoR)の資料
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 58
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
多変量解析の背景理論
多変量解析の背景理論
h_yama2396
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
Ken'ichi Matsui
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
Daisuke Yoneoka
多変量解析を用いたメタボロームデータ解析
多変量解析を用いたメタボロームデータ解析
h_yama2396
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
takehikoihayashi
統計的検定と例数設計の基礎
統計的検定と例数設計の基礎
Senshu University
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
syou6162
猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度
YukinoriKambe
Empfohlen
多変量解析の背景理論
多変量解析の背景理論
h_yama2396
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
Ken'ichi Matsui
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
Daisuke Yoneoka
多変量解析を用いたメタボロームデータ解析
多変量解析を用いたメタボロームデータ解析
h_yama2396
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
takehikoihayashi
統計的検定と例数設計の基礎
統計的検定と例数設計の基礎
Senshu University
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
syou6162
猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度
YukinoriKambe
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
Shuyo Nakatani
100614 構造方程式モデリング基本の「き」
100614 構造方程式モデリング基本の「き」
Shinohara Masahiro
初心者による初心者のための「質的データの二変量解析」
初心者による初心者のための「質的データの二変量解析」
Yasuyuki Okumura
2値分類・多クラス分類
2値分類・多クラス分類
t dev
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
Ken'ichi Matsui
ディリクレ過程に基づく無限混合線形回帰モデル in 機械学習プロフェッショナルシリーズ輪読会
ディリクレ過程に基づく無限混合線形回帰モデル in 機械学習プロフェッショナルシリーズ輪読会
Shotaro Sano
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
Koichiro Gibo
フリーソフトウェアを通じた多変量解析講習
フリーソフトウェアを通じた多変量解析講習
h_yama2396
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]
daiki hojo
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Keiku322
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析
Mitsunori Sato
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
Yoshitake Takebayashi
Rの高速化
Rの高速化
弘毅 露崎
形態素解析の過去・現在・未来
形態素解析の過去・現在・未来
Preferred Networks
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
異常行動検出入門(改)
異常行動検出入門(改)
Yohei Sato
Rで学ぶロバスト推定
Rで学ぶロバスト推定
Shintaro Fukushima
機械学習モデルの列挙
機械学習モデルの列挙
Satoshi Hara
明日から読める無作為化比較試験: 行動療法研究に求められる統計学
明日から読める無作為化比較試験: 行動療法研究に求められる統計学
Yasuyuki Okumura
Tokyo.R #46 Cox比例ハザードモデルとその周辺
Tokyo.R #46 Cox比例ハザードモデルとその周辺
kikurage1001
R-3.0.0でGLM
R-3.0.0でGLM
Kazuya Wada
TokyoR:RMarkdownでレポート作成
TokyoR:RMarkdownでレポート作成
Takashi Minoda
Weitere ähnliche Inhalte
Was ist angesagt?
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
Shuyo Nakatani
100614 構造方程式モデリング基本の「き」
100614 構造方程式モデリング基本の「き」
Shinohara Masahiro
初心者による初心者のための「質的データの二変量解析」
初心者による初心者のための「質的データの二変量解析」
Yasuyuki Okumura
2値分類・多クラス分類
2値分類・多クラス分類
t dev
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
Ken'ichi Matsui
ディリクレ過程に基づく無限混合線形回帰モデル in 機械学習プロフェッショナルシリーズ輪読会
ディリクレ過程に基づく無限混合線形回帰モデル in 機械学習プロフェッショナルシリーズ輪読会
Shotaro Sano
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
Koichiro Gibo
フリーソフトウェアを通じた多変量解析講習
フリーソフトウェアを通じた多変量解析講習
h_yama2396
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]
daiki hojo
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Keiku322
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析
Mitsunori Sato
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
Yoshitake Takebayashi
Rの高速化
Rの高速化
弘毅 露崎
形態素解析の過去・現在・未来
形態素解析の過去・現在・未来
Preferred Networks
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
異常行動検出入門(改)
異常行動検出入門(改)
Yohei Sato
Rで学ぶロバスト推定
Rで学ぶロバスト推定
Shintaro Fukushima
機械学習モデルの列挙
機械学習モデルの列挙
Satoshi Hara
明日から読める無作為化比較試験: 行動療法研究に求められる統計学
明日から読める無作為化比較試験: 行動療法研究に求められる統計学
Yasuyuki Okumura
Tokyo.R #46 Cox比例ハザードモデルとその周辺
Tokyo.R #46 Cox比例ハザードモデルとその周辺
kikurage1001
Was ist angesagt?
(20)
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
100614 構造方程式モデリング基本の「き」
100614 構造方程式モデリング基本の「き」
初心者による初心者のための「質的データの二変量解析」
初心者による初心者のための「質的データの二変量解析」
2値分類・多クラス分類
2値分類・多クラス分類
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
ディリクレ過程に基づく無限混合線形回帰モデル in 機械学習プロフェッショナルシリーズ輪読会
ディリクレ過程に基づく無限混合線形回帰モデル in 機械学習プロフェッショナルシリーズ輪読会
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
フリーソフトウェアを通じた多変量解析講習
フリーソフトウェアを通じた多変量解析講習
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
Rの高速化
Rの高速化
形態素解析の過去・現在・未来
形態素解析の過去・現在・未来
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
異常行動検出入門(改)
異常行動検出入門(改)
Rで学ぶロバスト推定
Rで学ぶロバスト推定
機械学習モデルの列挙
機械学習モデルの列挙
明日から読める無作為化比較試験: 行動療法研究に求められる統計学
明日から読める無作為化比較試験: 行動療法研究に求められる統計学
Tokyo.R #46 Cox比例ハザードモデルとその周辺
Tokyo.R #46 Cox比例ハザードモデルとその周辺
Andere mochten auch
R-3.0.0でGLM
R-3.0.0でGLM
Kazuya Wada
TokyoR:RMarkdownでレポート作成
TokyoR:RMarkdownでレポート作成
Takashi Minoda
R3.0.0 is relased
R3.0.0 is relased
Shintaro Fukushima
Fluentd,mongo db,rでお手軽ログ解析環境
Fluentd,mongo db,rでお手軽ログ解析環境
Michitaka Iida
Collaborativefilteringwith r
Collaborativefilteringwith r
Teito Nakagawa
Rでコンジョイント分析
Rでコンジョイント分析
osamu morimoto
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
Shuyo Nakatani
Tokyo r30 beginner
Tokyo r30 beginner
Takashi Minoda
Andere mochten auch
(8)
R-3.0.0でGLM
R-3.0.0でGLM
TokyoR:RMarkdownでレポート作成
TokyoR:RMarkdownでレポート作成
R3.0.0 is relased
R3.0.0 is relased
Fluentd,mongo db,rでお手軽ログ解析環境
Fluentd,mongo db,rでお手軽ログ解析環境
Collaborativefilteringwith r
Collaborativefilteringwith r
Rでコンジョイント分析
Rでコンジョイント分析
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
Tokyo r30 beginner
Tokyo r30 beginner
Ähnlich wie 「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
Rによる繰り返しの並列処理
Rによる繰り返しの並列処理
wada, kazumi
JOIss2020 発表資料
JOIss2020 発表資料
mdkcpp 1015
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Kimikazu Kato
Tokyo r33 beginner
Tokyo r33 beginner
Takashi Minoda
R language definition3.1_3.2
R language definition3.1_3.2
Yoshiteru Kamiyama
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
Satoshi Yamada
2011年11月18日
2011年11月18日
nukaemon
[DL輪読会]Control as Inferenceと発展
[DL輪読会]Control as Inferenceと発展
Deep Learning JP
Metaprogramming in JuliaLang
Metaprogramming in JuliaLang
Yuichi Motoyama
オンライン学習 : Online learning
オンライン学習 : Online learning
Daiki Tanaka
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
Ouka Yuka
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
K010 appstat201201
K010 appstat201201
t2tarumi
Tokyo r27
Tokyo r27
Takashi Minoda
初めてのHaskell (表)
初めてのHaskell (表)
karky7
Nagoya.R #12 入門者講習
Nagoya.R #12 入門者講習
Yusaku Kawaguchi
数理解析道場
数理解析道場
TakaakiYonekura
2011年12月9日
2011年12月9日
nukaemon
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Satoshi Yamada
Ekmett勉強会発表資料
Ekmett勉強会発表資料
時響 逢坂
Ähnlich wie 「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
(20)
Rによる繰り返しの並列処理
Rによる繰り返しの並列処理
JOIss2020 発表資料
JOIss2020 発表資料
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Tokyo r33 beginner
Tokyo r33 beginner
R language definition3.1_3.2
R language definition3.1_3.2
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
2011年11月18日
2011年11月18日
[DL輪読会]Control as Inferenceと発展
[DL輪読会]Control as Inferenceと発展
Metaprogramming in JuliaLang
Metaprogramming in JuliaLang
オンライン学習 : Online learning
オンライン学習 : Online learning
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
K010 appstat201201
K010 appstat201201
Tokyo r27
Tokyo r27
初めてのHaskell (表)
初めてのHaskell (表)
Nagoya.R #12 入門者講習
Nagoya.R #12 入門者講習
数理解析道場
数理解析道場
2011年12月9日
2011年12月9日
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Ekmett勉強会発表資料
Ekmett勉強会発表資料
Mehr von Nagi Teramo
第86回R勉強会@東京 LT資料
第86回R勉強会@東京 LT資料
Nagi Teramo
Rでを作る
Rでを作る
Nagi Teramo
Reproducebility 100倍 Dockerマン
Reproducebility 100倍 Dockerマン
Nagi Teramo
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
Nagi Teramo
闇と向き合う
闇と向き合う
Nagi Teramo
機械の体を手に入れるのよ、鉄郎!!!
機械の体を手に入れるのよ、鉄郎!!!
Nagi Teramo
続わかりやすいパターン認識11章(11.1 - 11.4)
続わかりやすいパターン認識11章(11.1 - 11.4)
Nagi Teramo
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
Nagi Teramo
Ultra Lightning Talk × 3
Ultra Lightning Talk × 3
Nagi Teramo
F#談話室(17)
F#談話室(17)
Nagi Teramo
RFinanceJはじめました
RFinanceJはじめました
Nagi Teramo
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
Nagi Teramo
お前の逐モン、GETだぜ!
お前の逐モン、GETだぜ!
Nagi Teramo
Trading volume mapping R in recent environment
Trading volume mapping R in recent environment
Nagi Teramo
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Nagi Teramo
とある金融屋の統計技師が時系列解析してみた
とある金融屋の統計技師が時系列解析してみた
Nagi Teramo
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Nagi Teramo
レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成
Nagi Teramo
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
Nagi Teramo
Mehr von Nagi Teramo
(20)
第86回R勉強会@東京 LT資料
第86回R勉強会@東京 LT資料
Rでを作る
Rでを作る
Reproducebility 100倍 Dockerマン
Reproducebility 100倍 Dockerマン
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
闇と向き合う
闇と向き合う
機械の体を手に入れるのよ、鉄郎!!!
機械の体を手に入れるのよ、鉄郎!!!
続わかりやすいパターン認識11章(11.1 - 11.4)
続わかりやすいパターン認識11章(11.1 - 11.4)
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
Ultra Lightning Talk × 3
Ultra Lightning Talk × 3
F#談話室(17)
F#談話室(17)
RFinanceJはじめました
RFinanceJはじめました
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
お前の逐モン、GETだぜ!
お前の逐モン、GETだぜ!
Trading volume mapping R in recent environment
Trading volume mapping R in recent environment
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
とある金融屋の統計技師が時系列解析してみた
とある金融屋の統計技師が時系列解析してみた
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」
レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
Kürzlich hochgeladen
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Kürzlich hochgeladen
(9)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
1.
plyrパッケージで君も前処理スタ☆ 第30回 勉強会@東京(#TokyoR) @teramonagi
2.
plyrパッケージで君も前処理スタ☆ 第30回 勉強会@東京(#TokyoR) @teramonagi plyrパッケージ徹底入門
3.
自己紹介 • ID:@teramonagi • お仕事:遊撃 •
興味:/C++/R/python/F#/数理/可視 化/金融/web/ 3 春ですね。新たな出会 いの季節ですね。
4.
春は出会いの季節 • 各所に配属される新人 • バイト先に新しく入って来たイケメン •
隣に越してきた美人のおねぇさん • 進振りで一緒になった同級生 • たまたま講義で横に座ったあの子 etc…… 4
5.
そんな季節の病 •恋煩い • 【意味】恋するあまりの悩みや気の ふさぎ。恋のやまい (Goo辞書より引用) 5
6.
似たような病 •分析煩い • 分析するあまりの悩みや気のふさ ぎ。業務上の病。 (teramonagi語録より引用) • 「分析したい…でもその前の処理が 面倒くさい…集計も面倒くさい…」 6
7.
そんな貴方にお勧めしたい plyrパッケージ (“プライヤー”と読む) 7
8.
作者はggplot2のhadley 8http://had.co.nz/より
9.
最近だとビッグデータの可視化も 9Revolutionsブログ(http://blog.revolutionanalytics.com/) 2013/4/8の記事より
10.
10 plyrで何が 出来るの?
11.
plyrの主なお仕事 • データを分割し、それぞれに処理を 適用し、そして結合して戻すという、 分析の基本的な流れを楽にしてくれ る • 例:年齢・性別ごとデータを分割し、 ある需要予測モデルを適用し予測 を実施、その結果を再結合して出力 したい 11
12.
plyrの思想 • Split(分割): –指定した特徴量でデータ分割 • Apply(適用) –分割データに対する関数を適用 •
Combine(結合) –適用した結果を再結合し出力 12
13.
使用するデータ:airquality • ニューヨークの大気状態観測値 • 各列の説明 –
Ozone:オゾン量(ppb) – Solar.R:太陽光の強さ(Langley) – Wind:平均風速(mph) – Temp:最高気温 (degrees F) – Month:月 – Day:日 13
14.
何はともあれ可視化しておく 14 Ozone50 100 150 0 50 100
150 Cor : 0.348 5: 0.243 6: 0.718 7: 0.429 8: 0.53 9: 0.18 Cor : -0.612 5: -0.451 6: 0.357 7: -0.667 8: -0.74 9: -0.61 Cor : 0.699 5: 0.613 6: 0.668 7: 0.723 8: 0.605 9: 0.828 Solar.R100 200 300 0 100 200 300 Cor : -0.127 5: -0.217 6: 0.612 7: -0.234 8: -0.188 9: -0.0939 Cor : 0.294 5: 0.482 6: 0.647 7: 0.331 8: 0.457 9: 0.123 Wind10 15 20 5 10 15 20 Cor : -0.497 5: -0.299 6: -0.0877 7: -0.469 8: -0.476 9: -0.579 Temp70 80 90 60 70 80 90 Month 5 6 7 8 9 GGallyパッケージを用い筆者作成(「美しい ペアプロット クオンツ」あたりで検索)
15.
一番良く使う関数(群) 15 入力 出力
16.
入出力の型に応じた関数表 入力/出力 array data. frame list なし array
aaply adply alply a_ply data. frame daply ddply dlply d_ply list laply ldply llply l_ply 繰り返し (repeat) raply rdply rlply r_ply 関数引数 (multi?) maply mdply mlply m_ply 16赤字:本資料で取り扱う関数
17.
従来のRの関数との対応 入力/出力 array data. frame list なし array
apply adply alply a_ply data. frame daply aggregate by d_ply list sapply ldply lapply l_ply 繰り返し (repeat) replicate rdply replicate r_ply 関数引数 (matrix) mapply mdply mapply m_ply 17http://www.slideshare.net/hadley/04-wrapupより
18.
パッケージの導入&読込 > install.packages("plyr") trying URL 'http://cran.rstudio.com/bin/windows/ contrib/3.0/plyr_1.8.zip' ……(途中省略) >
#ライブラリの読み込み > library(plyr) 18
19.
データをざっとチェック > head(airquality) Ozone Solar.R
Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6 19
20.
Misson 1 20 私よ。 すぐに月毎 の平均気温 を出して
21.
ddply関数でやってみる > #名前を短くしておく > aq
<- airquality > #月ごとの平均気温を出す > ddply(aq,"Month“,summarize, AveTemp=mean(Temp)) Month AveTemp 1 5 65.54839 2 6 79.10000 ……………………… 21
22.
忘れちゃいけないplyrの思想 > #名前を短くしておく > aq
<- airquality > #月ごとの平均気温を出す > ddply(aq,"Month“,summarize, AveTemp=mean(Temp)) Month AveTemp 1 5 65.54839 2 6 79.10000 ……………………… 22 •Split(分割) •月(Month)毎に •Apply(適用) •気温(Temp)の平均を算出し •Combine(結合) •data.frameとして戻す
23.
月ごとの平均気温を出す2 > #月ごとの平均気温2 with
“.()”関数 > ddply(aq, .(Month), summarize, AveTemp=mean(Temp)) Month AveTemp 1 5 65.54839 2 6 79.10000 3 7 83.90323 4 8 83.96774 5 9 76.90000 23
24.
• Excelだと…(既に目にくる) 月ごとの平均気温を出す3 24
25.
複数の結果も算出可能 > #複数の結果でもOK > ddply(aq,
.(Month), summarize, AveTemp=mean(Temp), SdTemp=sd(Temp)) Month AveTemp SdTemp 1 5 65.54839 6.854870 2 6 79.10000 6.598589 3 7 83.90323 4.315513 4 8 83.96774 6.585256 5 9 76.90000 8.355671 25
26.
Misson 2 26 あの男に連 絡よっ! すぐに月毎の 平均オゾン量 を出させな きゃ…
27.
同じように…しかしデータにNAが > ddply(aq, .(Month),
summarize, AveOzone=mean(Ozone)) Month AveOzone 1 5 NA 2 6 NA 3 7 NA 4 8 NA 5 9 NA 27
28.
meanにna.rm=TRUEを追加 > ddply(aq, .(Month),
summarize, AveOzone=mean(Ozone, na.rm=TRUE)) Month AveOzone 1 5 23.61538 2 6 29.44444 3 7 59.11538 4 8 59.96154 5 9 31.44828 28
29.
プログレスバーも導入可能 > ddply(aq, .(Month),
summarize, AveTemp=mean(Temp), .progress="text") |===============================| 100% Month AveTemp 1 5 65.54839 2 6 79.10000 3 7 83.90323 4 8 83.96774 5 9 76.90000 29
30.
.parallel引数について • XYply系関数に.parallel引数が存在 • 「重い…」とdisられるXYplyの救世主 •
字面通り処理を並列化してくれる (私のwindows環境で動かせなかっ たので言及のみ…誰かはよ) 30
31.
Misson 3 31 気温について より細かく場 合分けしたい わね…
32.
transform:変数操作で列追加 > #各月の平均気温以上の場合1、そうじゃないなら0とな るフラグを追加 > aq<- ddply(aq,.(Month),transform,HighTemp= ifelse(Temp-mean(Temp)>0,1,0)) >
aq Ozone Solar.R Wind Temp Month Day HighTemp 1 41 190 7.4 67 5 1 1 2 36 118 8.0 72 5 2 1 3 12 149 12.6 74 5 3 1 4 18 313 11.5 62 5 4 0 32
33.
月・平均気温毎の平均風速 > #月・平均気温以上(以下)毎に平均風速を計算 > ddply(aq,
.(Month, HighTemp), summarize, AveWind=mean(Wind)) Month HighTemp AveWind 1 5 0 12.800000 2 5 1 10.518750 3 6 0 10.383333 4 6 1 10.091667 5 7 0 9.820000 33
34.
Misson 4 34 ところでこの データってど のくらい欠 損値があっ た?
35.
colwise:列毎への関数適用 > #nmissing関数:欠損値の個数をカウント > nmissing<-function(x)sum(is.na(x)) >
#各列に対して関数を適用した結果を抽出 > colwise(nmissing)(aq) Ozone Solar.R Wind Temp Month Day HighTemp 1 37 7 0 0 0 0 0 > #plyrなしの生のRで書くと↓となる > colSums(aq,is.na(aq)) 35
36.
ddply + colwise
= 強力 > #月毎の各列の欠損値の個数 > ddply(aq,.(Month),colwise(nmissing)) Month Ozone Solar.R Wind Temp Day HighTemp 1 5 5 4 0 0 0 0 2 6 21 0 0 0 0 0 3 7 5 0 0 0 0 0 4 8 5 3 0 0 0 0 5 9 1 0 0 0 0 0 36
37.
生Rで書くと… >miss.by.month<- by(aq,aq$Month,colwise(nmissing)) >cbind(expand.grid(dimnames(miss.by.month)), do.call("rbind",miss.by.month)) aq$Month Ozone Solar.R
Wind Temp Month Day HighTemp 5 5 5 4 0 0 0 0 0 6 6 21 0 0 0 0 0 0 7 7 5 0 0 0 0 0 0 8 8 5 3 0 0 0 0 0 9 9 1 0 0 0 0 0 0 37
38.
Misson 5 38 Excel野郎に分 析させるから 月毎にデータ を全部csvで保 存してくれ
39.
d_ply:出力なしのddply > #月毎に分割したデータをファイルに保存 > d_ply(aq,
.(Month), function(x){ + month <- x$Month[1] + write.csv(x,paste0("airquality_",month,".csv")) + }) 39
40.
40 plyr is Ready
for Business
41.
41 以下、その他便利関数紹介
42.
rlply:指定回数繰り返し処理 42 > #オゾン量と気温の回帰分析を100ランダムサンプ リングして実施する関数 > f
<- function(){lm(Ozone~Temp,aq[sample(nrow(aq),1 00,replace=TRUE),])} > #俗にいうブートストラップ > lms <- rlply(100, f) > #生Rで書くなら…lms <- lapply(1:100,function(i){f()})
43.
rlply:指定回数繰り返し処理 43 > library(ggplot2) > qplot(laply(lms, function(x)coef(x)[2] ),
geom = "blank") + + geom_histogram(bin width=0.2,aes(y = ..density..),fill="do dgerblue",colour="b lack") 0.0 0.5 1.0 1.5 1.5 2.0 2.5 3.0 3.5 laply(lms, function(x) coef(x)[2]) density
44.
mdply:引数として同一関数適用 > #(平均・分散)={(1,1),(2,2),(3,3)}となる ような正規分布に従う乱数をn=2個ずつ生成 > mdply(data.frame(mean=1:3,sd=1:3),rnorm,n=2) mean
sd V1 V2 1 1 1 0.9676560 2.165706 2 2 2 5.2022971 3.457268 3 3 3 0.3475657 -1.151282 44
45.
arrange:ソート > arrange(aq,Ozone) Ozone Solar.R
Wind Temp Month Day HighTemp 1 1 8 9.7 59 5 21 0 2 4 25 9.7 61 5 23 0 3 6 78 18.4 57 5 18 0 4 7 NA 6.9 74 5 11 1 5 7 48 14.3 80 7 15 0 > #普通にRで書くならこんなかんじ > aq[with(aq,order(Ozone)),] 45
46.
arrange:ソート > #降順でのならべかえ > arrange(aq,desc(Ozone)) Ozone
Solar.R Wind Temp Month Day HighTemp 1 168 238 3.4 81 8 25 0 2 135 269 4.1 84 7 1 1 3 122 255 4.0 89 8 7 1 4 118 225 2.3 94 8 29 1 5 115 223 5.7 79 5 30 1 6 110 207 8.0 90 8 9 1 46
47.
arrange:ソート > #複数の列も指定可能 > arrange(aq,Ozone,desc(Solar.R)) Ozone
Solar.R Wind Temp Month Day HighTemp 1 1 8 9.7 59 5 21 0 2 4 25 9.7 61 5 23 0 3 6 78 18.4 57 5 18 0 4 7 49 10.3 69 9 24 0 5 7 48 14.3 80 7 15 0 6 7 NA 6.9 74 5 11 1 47
48.
rbind.fill:欠損値補完付きrbind > df<-data.frame(Ozone=33.00) > rbind(aq,df) Error
in rbind(deparse.level, ...) : 引数の 列の数が一致しません > rbind.fill(aq,df) Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 ....... 153 20 223 11.5 68 9 30 154 33 NA NA NA NA NA 48
49.
count:データ数勘定 > #各月ごとに何個データあるか > count(aq,.(Month)) Month
freq 1 5 31 2 6 30 3 7 31 4 8 31 5 9 30 > #↓とほぼ同じ > ddply(aq,"Month",nrow) 49
50.
name_rows:行名保存&復元 > # arrange等,plyrの関数は行名非保存 >
arrange(aq, Ozone) Ozone Solar.R Wind Temp Month Day 1 1 8 9.7 59 5 21 2 4 25 9.7 61 5 23 3 6 78 18.4 57 5 18 4 7 NA 6.9 74 5 11 50
51.
name_rows:行名保存&復元 > arrange(name_rows(aq), Ozone) Ozone
Solar.R Wind Temp Month Day .rownames 1 1 8 9.7 59 5 21 21 2 4 25 9.7 61 5 23 23 3 6 78 18.4 57 5 18 18 > # 二回name_rowsを噛ませると行名保存されて出力 > name_rows(arrange(name_rows(aq),Ozone)) Ozone Solar.R Wind Temp Month Day 21 1 8 9.7 59 5 21 23 4 25 9.7 61 5 23 18 6 78 18.4 57 5 18 51
52.
splat:同名の列処理 > ozone.per.solar<- function(Ozone,Solar.R,...){Ozone/Solar.R} > head(aq,1) Ozone
Solar.R Wind Temp Month Day HighTemp 1 41 190 7.4 67 5 1 1 > splat(ozone.per.solar)(aq[1,]) [1] 0.2157895 > splat(ozone.per.solar)(aq) [1] 0.21578947 0.30508475 0.08053 …………… 52
53.
round_any:値の丸め込み > # 10の位に丸め込み(1の位で四捨五入) >
round_any(135,10) [1] 140 > # 10の位に丸め込み(1の位で切り捨て) > round_any(135,10,floor) [1] 130 > # 100の位に丸め込み(10の位で切り上げ) > round_any(135,100,ceiling) >[1] 200 53
54.
rename:列名の置換 > # Ozone列をOooozoneという列名へ >rename(aq,replace=c(Ozone="Oooozone")) Oooozone
Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6 54
55.
mapvalues,revalue:値の置換 > x <-
c("a", "b", "c") > #a⇒AAA,c⇒CCCと変換。数値もいける >mapvalues(x,c("a“,"c"),c("AAA","CCC")) [1] "AAA" "b" "CCC" > #a⇒AAA,c⇒CCCと変換。文字・ファクター向き > revalue(x, c("a"="AAA","c"="CCC")) [1] "AAA" "b" "CCC" 55
56.
Happy debugging > #デバッグする時に便利な書き方 >
ddply(aq,.(Month),function(x)browser()) Called from: .fun(piece, ...) Browse[1]> x Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 56
57.
Enjoy!!! 57ぽんちん
58.
参考 • H.Wickham氏の各種slide – http://www.slideshare.net/hadley/presentations •
Stackoverflowの[plyr]tag – http://stackoverflow.com/questions/tagged/plyr • The Split-Apply-Combine Strategy for Data Analysis, H.Wickham – http://www.jstatsoft.org/v40/i01/paper 58
Jetzt herunterladen