Submit Search
Upload
2017年3月版データマエショリスト入門
•
9 likes
•
1,543 views
Yuya Matsumura
Follow
Tokyo.R #59での初心者セッションの資料
Read less
Read more
Technology
Report
Share
Report
Share
1 of 53
Download now
Download to read offline
Recommended
2016年6月版データマエショリスト入門
2016年6月版データマエショリスト入門
Yuya Matsumura
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42
Atsushi Hayakawa
Tokyo r47 beginner_2
Tokyo r47 beginner_2
Takashi Minoda
Tokyo r33 beginner
Tokyo r33 beginner
Takashi Minoda
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
Nobuaki Oshiro
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
Nobuaki Oshiro
Tokyor60 r data_science_part1
Tokyor60 r data_science_part1
Yohei Sato
Recommended
2016年6月版データマエショリスト入門
2016年6月版データマエショリスト入門
Yuya Matsumura
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42
Atsushi Hayakawa
Tokyo r47 beginner_2
Tokyo r47 beginner_2
Takashi Minoda
Tokyo r33 beginner
Tokyo r33 beginner
Takashi Minoda
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
Nobuaki Oshiro
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
Nobuaki Oshiro
Tokyor60 r data_science_part1
Tokyor60 r data_science_part1
Yohei Sato
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
Tokyo r50 beginner_2
Tokyo r50 beginner_2
Takashi Minoda
Rによるデータ整形入門 Introduction to Data Transformation with R
Rによるデータ整形入門 Introduction to Data Transformation with R
Yukihiro NAKAJIMA
Tokyor36
Tokyor36
TokorosawaYoshio
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
Tokyo r28 1
Tokyo r28 1
Takashi Minoda
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション
考司 小杉
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
HiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaue
SAKAUE, Tatsuya
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5
Nobuaki Oshiro
HiRoshimaR3_IntroR
HiRoshimaR3_IntroR
SAKAUE, Tatsuya
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話
Yuya Matsumura
R による文書分類入門
R による文書分類入門
Takeshi Arabiki
Hiroshimar4_Rintro
Hiroshimar4_Rintro
SAKAUE, Tatsuya
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
OWL.learn
JASELE2015-KumamotoWS
JASELE2015-KumamotoWS
SAKAUE, Tatsuya
Tokyo r38
Tokyo r38
Takashi Minoda
HiroshimaR6_Introduction
HiroshimaR6_Introduction
SAKAUE, Tatsuya
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
Koichi Hamada
プログラマのための文書推薦入門
プログラマのための文書推薦入門
y-uti
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
Yuya Matsumura
TokyoR58 初心者セッション
TokyoR58 初心者セッション
kotora_0507
More Related Content
What's hot
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
Tokyo r50 beginner_2
Tokyo r50 beginner_2
Takashi Minoda
Rによるデータ整形入門 Introduction to Data Transformation with R
Rによるデータ整形入門 Introduction to Data Transformation with R
Yukihiro NAKAJIMA
Tokyor36
Tokyor36
TokorosawaYoshio
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
Tokyo r28 1
Tokyo r28 1
Takashi Minoda
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション
考司 小杉
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
HiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaue
SAKAUE, Tatsuya
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5
Nobuaki Oshiro
HiRoshimaR3_IntroR
HiRoshimaR3_IntroR
SAKAUE, Tatsuya
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話
Yuya Matsumura
R による文書分類入門
R による文書分類入門
Takeshi Arabiki
Hiroshimar4_Rintro
Hiroshimar4_Rintro
SAKAUE, Tatsuya
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
OWL.learn
JASELE2015-KumamotoWS
JASELE2015-KumamotoWS
SAKAUE, Tatsuya
Tokyo r38
Tokyo r38
Takashi Minoda
HiroshimaR6_Introduction
HiroshimaR6_Introduction
SAKAUE, Tatsuya
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
Koichi Hamada
プログラマのための文書推薦入門
プログラマのための文書推薦入門
y-uti
What's hot
(20)
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Tokyo r50 beginner_2
Tokyo r50 beginner_2
Rによるデータ整形入門 Introduction to Data Transformation with R
Rによるデータ整形入門 Introduction to Data Transformation with R
Tokyor36
Tokyor36
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Tokyo r28 1
Tokyo r28 1
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
HiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaue
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5
HiRoshimaR3_IntroR
HiRoshimaR3_IntroR
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話
R による文書分類入門
R による文書分類入門
Hiroshimar4_Rintro
Hiroshimar4_Rintro
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
JASELE2015-KumamotoWS
JASELE2015-KumamotoWS
Tokyo r38
Tokyo r38
HiroshimaR6_Introduction
HiroshimaR6_Introduction
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
プログラマのための文書推薦入門
プログラマのための文書推薦入門
Viewers also liked
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
Yuya Matsumura
TokyoR58 初心者セッション
TokyoR58 初心者セッション
kotora_0507
Tidyverseとは
Tidyverseとは
yutannihilation
XGBoost: the algorithm that wins every competition
XGBoost: the algorithm that wins every competition
Jaroslaw Szymczak
5分でわかるベイズ確率
5分でわかるベイズ確率
hoxo_m
統計的学習の基礎輪読会資料 (7章後半 7.9〜)
統計的学習の基礎輪読会資料 (7章後半 7.9〜)
Yuya Matsumura
20170318 community leaders_open
20170318 community leaders_open
Hideki Ojima
Anyone Can Design
Anyone Can Design
Scott Childs
Diagnóstico SEO Técnico con Herramientas #TheInbounder
Diagnóstico SEO Técnico con Herramientas #TheInbounder
MJ Cachón Yáñez
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Takuma Hatano
出版学会(活字離れ)資料
出版学会(活字離れ)資料
Tomohiko (TOMO) Hayashi
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
Tokoroten Nakayama
Visual Design with Data
Visual Design with Data
Seth Familian
生態学会自由集会での講演のプレビュー
生態学会自由集会での講演のプレビュー
takehikoihayashi
20170317 jaws days linked us to the super power
20170317 jaws days linked us to the super power
Seiji Akatsuka
Innovation
Innovation
Sonalli Arora
Solvent Effects on Chemical Reaction
Solvent Effects on Chemical Reaction
rita martin
Fortune 1000 HR Leader Survey Results
Fortune 1000 HR Leader Survey Results
Chuck Solomon
Pharmaceutical Mergers Acquisitions in the U.S
Pharmaceutical Mergers Acquisitions in the U.S
Capgemini
インフラ野郎AzureチームOCP Summit US 2017号外
インフラ野郎AzureチームOCP Summit US 2017号外
Toru Makabe
Viewers also liked
(20)
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
TokyoR58 初心者セッション
TokyoR58 初心者セッション
Tidyverseとは
Tidyverseとは
XGBoost: the algorithm that wins every competition
XGBoost: the algorithm that wins every competition
5分でわかるベイズ確率
5分でわかるベイズ確率
統計的学習の基礎輪読会資料 (7章後半 7.9〜)
統計的学習の基礎輪読会資料 (7章後半 7.9〜)
20170318 community leaders_open
20170318 community leaders_open
Anyone Can Design
Anyone Can Design
Diagnóstico SEO Técnico con Herramientas #TheInbounder
Diagnóstico SEO Técnico con Herramientas #TheInbounder
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
出版学会(活字離れ)資料
出版学会(活字離れ)資料
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
Visual Design with Data
Visual Design with Data
生態学会自由集会での講演のプレビュー
生態学会自由集会での講演のプレビュー
20170317 jaws days linked us to the super power
20170317 jaws days linked us to the super power
Innovation
Innovation
Solvent Effects on Chemical Reaction
Solvent Effects on Chemical Reaction
Fortune 1000 HR Leader Survey Results
Fortune 1000 HR Leader Survey Results
Pharmaceutical Mergers Acquisitions in the U.S
Pharmaceutical Mergers Acquisitions in the U.S
インフラ野郎AzureチームOCP Summit US 2017号外
インフラ野郎AzureチームOCP Summit US 2017号外
Similar to 2017年3月版データマエショリスト入門
Introduction to R
Introduction to R
Yukihiro NAKAJIMA
Intoroduction of Pandas with Python
Intoroduction of Pandas with Python
Atsushi Hayakawa
Tokyo r27
Tokyo r27
Takashi Minoda
Rを用いたGIS
Rを用いたGIS
Mizutani Takayuki
Stan勉強会資料(前編)
Stan勉強会資料(前編)
daiki hojo
R's anti sparseness
R's anti sparseness
ybenjo
RとCDISC
RとCDISC
Masafumi Okada
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約
Yusaku Kawaguchi
判別分析
判別分析
Satoru Yamamoto
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
Yuichiro Kobayashi
Go言語のスライスを理解しよう
Go言語のスライスを理解しよう
Yasutaka Kawamoto
Tokyor23 doradora09
Tokyor23 doradora09
Nobuaki Oshiro
RでGISハンズオンセッション
RでGISハンズオンセッション
arctic_tern265
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力
imuyaoti
Rユーザのためのspark入門
Rユーザのためのspark入門
Shintaro Fukushima
Tokyo r45 beginner_2
Tokyo r45 beginner_2
Takashi Minoda
textsearch_jaで全文検索
textsearch_jaで全文検索
Akio Ishida
R言語勉強会#4.pdf
R言語勉強会#4.pdf
Takuya Kubo
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
yushin_hirano
R入門とgoogle map +α
R入門とgoogle map +α
kobexr
Similar to 2017年3月版データマエショリスト入門
(20)
Introduction to R
Introduction to R
Intoroduction of Pandas with Python
Intoroduction of Pandas with Python
Tokyo r27
Tokyo r27
Rを用いたGIS
Rを用いたGIS
Stan勉強会資料(前編)
Stan勉強会資料(前編)
R's anti sparseness
R's anti sparseness
RとCDISC
RとCDISC
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約
判別分析
判別分析
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
Go言語のスライスを理解しよう
Go言語のスライスを理解しよう
Tokyor23 doradora09
Tokyor23 doradora09
RでGISハンズオンセッション
RでGISハンズオンセッション
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力
Rユーザのためのspark入門
Rユーザのためのspark入門
Tokyo r45 beginner_2
Tokyo r45 beginner_2
textsearch_jaで全文検索
textsearch_jaで全文検索
R言語勉強会#4.pdf
R言語勉強会#4.pdf
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
R入門とgoogle map +α
R入門とgoogle map +α
Recently uploaded
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Recently uploaded
(7)
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
2017年3月版データマエショリスト入門
1.
2017年3月版 データ・マエショリスト入門 データの読み込みから{dplyr}の基本まで @y__mattu 12017/3/18 Tokyo.R #59
2.
自己紹介 • 松村優哉 @y__mattu •
ブログ:http://y-mattu.hatenablog.com/ • 大学4年生 • 分野:計量経済学、統計学(因果推論)、マーケティング • 言語:R, SAS • R歴:2年くらい • 近況:もうすぐ卒業&進学 22017/3/18 Tokyo.R #59
3.
この発表について • 2016/6/19 Tokyo.R
#54 初心者セッションの加筆修正版 2017/3/18 Tokyo.R #59 3
4.
アジェンダ • データの読み込み {readr}, {data.table},
{readxl}… • データの前処理 • {dplyr} • select, filter, mutate, group_by, arrange, 各種join • おまけ: {tidyverse} 2017/3/18 Tokyo.R #59 4
5.
データ分析の流れ 2017/3/18 Tokyo.R #59
5 データ取得 前処理 可視化・モデリング
6.
データ分析の流れ 2017/3/18 Tokyo.R #59
6 データ取得 前処理 可視化・モデリング Webから取得 (スクレイピング) 外部ファイル (csv, tsv, Excel,…) データベース (SQL)
7.
データ分析の流れ 2017/3/18 Tokyo.R #59
7 データ取得 前処理 可視化・モデリング 集計 マージ 型変換 絞り込み
8.
データ分析の流れ 2017/3/18 Tokyo.R #59 データ取得 前処理 可視化・モデリング 散布図 ヒストグラム 箱ひげ図 回帰分析 (重回帰、ロジスティック、…) ランダムフォレスト サポートベクトルマシン 8
9.
今日扱うのはここ 2017/3/18 Tokyo.R #59
9 前処理 可視化・モデリング 集計 マージ 型変換 絞り込み データ取得 外部ファイル (csv, tsv, Excel,…)
10.
はじめに • ワーキングディレクトリの設定 • ライブラリに入っている関数の使い方 2017/3/18
Tokyo.R #59 10 setwd(“./TokyoR/59”) #ディレクトリの指定 #方法1 library(readr) dat <- read_csv(“hoge.csv”) 方法2 readr::read_csv (“hoge.csv”)
11.
データの読み込み(CSV) • パッケージを使わない場合 • 高速な読み込み1 •
高速な読み込み2 2017/3/18 Tokyo.R #59 11 dat <- read.csv(“sample.csv”, stringAsFactors = FALSE) library(readr) dat <- read_csv(“sample.csv”) library(data.table) dat <- fread(“sample.csv”, data.table = FALSE) data.tableではなくdata.frameとして扱いたい場合は追加 おまじない
12.
データの読み込み速度比較 2017/3/18 Tokyo.R #59
12 csvファイル(log.csv) 約500MB 約350万行×5列の簡単なログデータ 検証環境 Mac OS 10.11.5 Corei7 メモリ16GB R 3.3.3
13.
データの読み込み速度比較 2017/3/18 Tokyo.R #59
13 > system.time(csv1 <- read.csv(“log.csv")) # ユーザ システム 経過 # 59.801 1.337 63.681 実行時間を計測 > system.time(csv2 <- readr::read_csv(“log.csv")) # ユーザ システム 経過 # 5.005 0.527 7.732 > system.time(csv3 <- data.table::fread(“log.csv")) # ユーザ システム 経過 # 3.502 0.425 6.965
14.
データの読み込み(TSV) • パッケージを使わない場合 • {readr} •
{data.table} 2017/3/18 Tokyo.R #59 14 dat <- read.delim(“sample.tsv”, stringAsFactors = FALSE, ) dat <- readr::read_tsv(“sample.tsv”) dat <- data.table::fread(“sample.tsv”, data.table = FALSE)
15.
データの読み込み(その他の区切り値) • パッケージを使わない場合 • {readr} •
{data.table} 2017/3/18 Tokyo.R #59 15 dat <- read.table(“sample.tsv”, stringAsFactors = FALSE, sep = “|”) dat <- readr::read_delim(“sample.tsv”, “|”) dat <- data.table::fread(“sample.tsv”)
16.
データの読み込み(Excel) • Excelを読み込めるパッケージ {xlsx}, {gdata},
{XLConnect}, {openxlsx}, {redxl} 爆速、かつ文字コードや日付の処理も完璧にやってくれる 2017/3/18 Tokyo.R #59 16 dat <- readxl::read_excel(“sample.xlsx”, sheet = “シート名”) #シート名は番号でもOK
17.
データの読み込み(その他拡張子) • SAS(sas7bdat)、STATA()、SPSS(sav)形式のファイル →{haven}パッケージで読み込み 2017/3/18 Tokyo.R
#59 17 dat <- haven::read_excel(“sample.xlsx”, sheet = “シート名”) #シート名は番号でもOK
18.
コマンドとかオプションとかメンドイ… • RStudioのGUI読み込み 2017/3/18 Tokyo.R
#59 18 Import Dataset で形式を選択
19.
2017/3/18 Tokyo.R #59
19 読み込みのコマンドもわかる 読み込んだときの様子がプレビューできる 区切り値や欠損値の設定も可能 クリックでファイル選択
20.
エンコーディングを指定したい • Windowsの文字コードはShift-JIS(CP932) • Macの文字コードはUTF8 •
Windowsで作られた(日本語を含む)ファイルをMacで読む ときはEncoding=“CP932” • Macで作られた(日本語を含む)ファイルをWindowsで読む ときはEncoding=“UTF8” 2017/3/18 Tokyo.R #59 20
21.
エンコーディング(例:CSVをCP932で) • パッケージを使わない場合 • {readr} •
{data.table} 2017/3/18 Tokyo.R #59 21 dat <- read.csv(“sample.csv”, strringAsFactors = FALSE, fileEncoding = “cp932”) dat <- readr::read_csv(“sample.csv”, locale=locale(encoding=“cp932")) dat <- data.table::fread(“sample.csv”, data.table = FALSE) %>% dplyr::mutate(VAR1 = iconv(VAR1, from = “UTF8", to = “CP932"))
22.
いよいよデータの前処理 • みんな大好きirisデータ • アヤメの3種(setosa,
vrisicolor, verginica)についてsepal (がく片)とpetal(花弁)の長さ(length)と幅(width)を 測ったデータセット 2017/3/18 Tokyo.R #59 22 Setosa Versicolor Verginica d <- iris
23.
データの構造を確認 • Rの標準関数 • {dplyr} 2017/3/18
Tokyo.R #59 23 > str(d) #'data.frame': 150 obs. of 5 variables: # $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... # $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... # $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... # $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... # $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ... > dplyr::glimpse(d) # Observations: 150 # Variables: 5 # $ Sepal.Length (dbl) 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3... # $ Sepal.Width (dbl) 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3.0, 3.0... # $ Petal.Length (dbl) 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.6, 1.4, 1.1... # $ Petal.Width (dbl) 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1... # $ Species (fctr) setosa, setosa, setosa, setosa, setosa, setosa, setosa, setosa, set...
24.
データの構造を確認 • Rstudioだと 2017/3/18 Tokyo.R
#59 24
25.
データの構造を確認 • Rstudioだとstr()の中身が表示される 2017/3/18 Tokyo.R
#59 25
26.
データの構造を確認 • summary関数で要約統計量 2017/3/18 Tokyo.R
#59 26 > summary(iris) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50 # 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50 # Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50 # Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 # 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 # Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
27.
集計してみる • Rの標準関数 2017/3/18 Tokyo.R
#59 27 > table(d$Species) # setosa versicolor virginica # 50 50 50
28.
集計してみる • {dplyr} 2017/3/18 Tokyo.R
#59 28 > group_by(d, Species) %>% + summarise(number = n()) #Source: local data frame [3 x 2] # Species number # (chr) (int) #1 setosa 50 #2 versicolor 50 #3 virginica 50 数えたい変数でグルーピング summarise関数 の中でカウント
29.
変数を追加したい1(例:花弁の縦横比) • Rの標準関数 または 2017/3/18 Tokyo.R
#59 29 transform(d, petal.w.l = d$Petal.Length / d$Petal.Width) d$petal.w.l = d$Petal.Length / d$Petal.Width
30.
変数を追加したい1(例:花弁の縦横比) • {dplyr} 2017/3/18 Tokyo.R
#59 30 dplyr::mutate(d, petal.w.l = Petal.Length / Petal.Width)
31.
ダミー変数も作れる 2017/3/18 Tokyo.R #59
31 species_dummy <- d %>% mutate(category = factor(Species, levels=c(“setosa”, “virginica”, “versicolor”), labels=LETTERS[1:3]))
32.
特定の列だけを取り出したい 例:Lengthにしか興味がないとき • パッケージを使わない 2017/3/18 Tokyo.R
#59 32 iris_length <- d[,c(1,3)] #列番号で直接指定
33.
特定の列だけを取り出したい 例:Lengthにしか興味がないとき • {dplyr} • 他にも、特定の変数を抜いたりもできる •
dplyr の select() の引数に指定可能なバリエーションまとめ 2017/3/18 Tokyo.R #59 33 iris_length <- select(d, Sepal.Length, Petal.Length) #列名を指 定 iris_length <- select(d, row_number(c(1,3))) #列番号を指定 iris_length <- select(d, contains(“length”, ignore.case = TRUE)) #”length”が含まれる列を選択 大文字、小文字を区別しない
34.
特定の行を取り出したい setosaのみ, 長さx以上, etc… •
Rの標準関数 2017/3/18 Tokyo.R #59 34 iris_setosa <- subset(d, Species == “setosa”) #条件を指定 iris5 <- iris5 <- subset(d, Sepal.Length > 5.0) #条件を指定
35.
特定の行を取り出したい setosaのみ, 長さx以上, etc… •
{dplyr} • 複数条件も可能 (参考文献「dplyrを使いこなす!基礎編」を参照) 2017/3/18 Tokyo.R #59 35 iris_setosa <- filter(d, Species == “setosa”) #条件を指定 iris5 <- filter(d, Sepal.Length > 5.0) #条件を指定
36.
ソートしたい • パッケージを使わない 2017/3/18 Tokyo.R
#59 36 length_asc <- d[order(d[, 2]), ] #2列目(Sepal.Width)基準に昇順 length_desc <- d[order(d[, 2], decreasing = T), ] #降順
37.
ソートしたい • {dplyr} 2017/3/18 Tokyo.R
#59 37 length_asc <- arrange(d, Sepal.Width) #Sepal.Width基準に昇順 length_desc <- arrange(d, descending(Sepal.Width)) #降順
38.
2017/3/18 Tokyo.R #59
38 いったんIrisから離れて…
39.
テーブルをマージしたい • 複数のテーブルの組み合わせ 2017/3/18 Tokyo.R
#59 39 引用:「dplyrを使いこなす!JOIN編」
40.
テーブルをマージしたい(inner_join) 2017/3/18 Tokyo.R #59
40 ab_inner<- inner_join(a, b, by = “x1”) 引用:「dplyrを使いこなす!JOIN編」
41.
テーブルをマージしたい(left_join) 2017/3/18 Tokyo.R #59
41 ab_left <- left_join(a, b, by = “x1”) 引用:「dplyrを使いこなす!JOIN編」
42.
テーブルをマージしたい(full_join) 2017/3/18 Tokyo.R #59
42 ab_full <- full_join(a, b, by = “x1”) 引用:「dplyrを使いこなす!JOIN編」
43.
テーブルをマージしたい(anti_join) 2017/3/18 Tokyo.R #59
43 ab_anti <- anti_join(a, b, by = “x1”) 引用:「dplyrを使いこなす!JOIN編」
44.
なぜ{dplyr}なのか • 速い • 依存パッケージ{magrittr}により%>%が使える •
%>%を使わないと 2017/3/18 Tokyo.R #59 44 d <- iris sepal_length <- select(d, contains(“Sepal”), Speceis) sepal_group <- group_by(sepal_length, Speceis) sepal_mean <- summarise(d_length, s.w.mean = mean(Sepal.Width), s.l.mean = mean(Sepal.Length)) sepal_mean
45.
なぜ{dplyr}なのか • 出力(種類ごとにがく片の平均値を算出) 2017/3/18 Tokyo.R
#59 45 > d # Source: local data frame [3 x 3] # # Species s.w.mean s.l.mean # (fctr) (dbl) (dbl) # 1 setosa 3.428 5.006 # 2 versicolor 2.770 5.936 # 3 virginica 2.974 6.588
46.
なぜ{dplyr}なのか • %>%を使うと 2017/3/18 Tokyo.R
#59 46 d <- iris %>% select(contains("Sepal"), Species) %>% group_by(Species)%>% summarise(s.w.mean = mean(Sepal.Width), s.l.mean = mean(Sepal.Length)) d
47.
データの前処理は他にも… • {dplyr} do, 各種Window関数 •
{tidyr} gather, spreadなど縦型と横型の変換について • {lubridate} 日付データの扱い • {purrr} リストデータの処理 2017/3/18 Tokyo.R #59 47
48.
もっと深く知りたい人は • Kazutan.R • データハンドリング、可視化、Rmarkdownを中心にコ マンドと用例で解説 2017/3/18
Tokyo.R #59 48
49.
おまけ:{tidyverse} • dplyr、tidyr、ggplot2など便利なパッケージが一気ににインス トールできる • そのうちのメインになるもの(readrやdplyrなどが一気に読み込 める) •
詳しくは俺たちのtidyverseはこれからだ!などを参照 2017/3/18 Tokyo.R #59 49 install.packages(“tidyverse”) library(tidyverse)
50.
結論 パッケージを使って 柔軟かつ高速な前処理を!! 2017/3/18 Tokyo.R #59
50
51.
その他参考文献 • データの読み込みについて 表形式ファイルの読み込み関数あれこれ: readrパッケージの導入を兼ねて 文字化けこわい、こわくない? readr,haven,readxl R:read.csv
/ read.tableで型と列名を指定して読み込む。 R で tsv ファイルの読み込み RでExcelのデータを読む方法 2017/3/18 Tokyo.R #59 51
52.
その他参考文献 • データの処理に関して dplyrを使いこなす!基礎編 dplyrを使いこなす!Window関数編 dplyrを使いこなす!JOIN編 Rの data.table
と data.frame を dplyr で区別なく扱う R dplyr, tidyr でのグルーピング/集約/変換処理まとめ {tidyr}でよく使う関数のメモ Hadley Ecosystem 2016 • その他 irisの正体 2017/3/18 Tokyo.R #59 52
53.
Enjoy ! 532017/3/18 Tokyo.R
#59
Download now