Soumettre la recherche
Mettre en ligne
20170923 excelユーザーのためのr入門
•
17 j'aime
•
3,701 vues
Takashi Kitano
Suivre
Tokyo.R#65 初心者セッション
Lire moins
Lire la suite
Données & analyses
Signaler
Partager
Signaler
Partager
1 sur 103
Recommandé
Tokyor60 r data_science_part1
Tokyor60 r data_science_part1
Yohei Sato
R language definition3.1_3.2
R language definition3.1_3.2
Yoshiteru Kamiyama
Perl for visualization
Perl for visualization
Daichi Morifuji
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話
do_aki
20140920 tokyo r43
20140920 tokyo r43
Takashi Kitano
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
第2回R勉強会1
第2回R勉強会1
Paweł Rusin
Recommandé
Tokyor60 r data_science_part1
Tokyor60 r data_science_part1
Yohei Sato
R language definition3.1_3.2
R language definition3.1_3.2
Yoshiteru Kamiyama
Perl for visualization
Perl for visualization
Daichi Morifuji
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話
do_aki
20140920 tokyo r43
20140920 tokyo r43
Takashi Kitano
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
第2回R勉強会1
第2回R勉強会1
Paweł Rusin
削除フラグのはなし
削除フラグのはなし
Shigetaka Yachi
Python for Data Analysis: Chapter 2
Python for Data Analysis: Chapter 2
智哉 今西
Ruby初級者向けレッスン 53回 ─── Array と Hash
Ruby初級者向けレッスン 53回 ─── Array と Hash
higaki
第三回R勉強会
第三回R勉強会
Paweł Rusin
2012 keynote-2
2012 keynote-2
kmiyako
俺のフックがこんなに簡単なわけがない。
俺のフックがこんなに簡単なわけがない。
Hishikawa Takuro
Ol genomgång
Ol genomgång
Stefan Hedlund
PHP と MySQL でカジュアルに MapReduce する (Short Version)
PHP と MySQL でカジュアルに MapReduce する (Short Version)
Yuya Takeyama
Rによるemailコミュニケーションの可視化
Rによるemailコミュニケーションの可視化
銀平 御園生
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
Akabane Hiroyuki
Currying in perl
Currying in perl
Masahiro Honma
D3.jsによるDOM操作
D3.jsによるDOM操作
清水 正行
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
Tetsuya Hasegawa
Monadicプログラミング マニアックス
Monadicプログラミング マニアックス
Tomoharu ASAMI
PHP と MySQL でカジュアルに MapReduce する
PHP と MySQL でカジュアルに MapReduce する
Yuya Takeyama
20150303ぞくパタLT-ゆるふわ構造学習
20150303ぞくパタLT-ゆるふわ構造学習
Toru Imai
Rで潜在ランク分析
Rで潜在ランク分析
Hiroshi Shimizu
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
Shuyo Nakatani
Mxnetで回帰 #TokyoR 53th
Mxnetで回帰 #TokyoR 53th
Akifumi Eguchi
Rcppのすすめ
Rcppのすすめ
Masaki Tsuda
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42
Atsushi Hayakawa
Dummiesパッケージ
Dummiesパッケージ
weda654
Contenu connexe
Tendances
削除フラグのはなし
削除フラグのはなし
Shigetaka Yachi
Python for Data Analysis: Chapter 2
Python for Data Analysis: Chapter 2
智哉 今西
Ruby初級者向けレッスン 53回 ─── Array と Hash
Ruby初級者向けレッスン 53回 ─── Array と Hash
higaki
第三回R勉強会
第三回R勉強会
Paweł Rusin
2012 keynote-2
2012 keynote-2
kmiyako
俺のフックがこんなに簡単なわけがない。
俺のフックがこんなに簡単なわけがない。
Hishikawa Takuro
Ol genomgång
Ol genomgång
Stefan Hedlund
PHP と MySQL でカジュアルに MapReduce する (Short Version)
PHP と MySQL でカジュアルに MapReduce する (Short Version)
Yuya Takeyama
Rによるemailコミュニケーションの可視化
Rによるemailコミュニケーションの可視化
銀平 御園生
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
Akabane Hiroyuki
Currying in perl
Currying in perl
Masahiro Honma
D3.jsによるDOM操作
D3.jsによるDOM操作
清水 正行
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
Tetsuya Hasegawa
Monadicプログラミング マニアックス
Monadicプログラミング マニアックス
Tomoharu ASAMI
PHP と MySQL でカジュアルに MapReduce する
PHP と MySQL でカジュアルに MapReduce する
Yuya Takeyama
Tendances
(15)
削除フラグのはなし
削除フラグのはなし
Python for Data Analysis: Chapter 2
Python for Data Analysis: Chapter 2
Ruby初級者向けレッスン 53回 ─── Array と Hash
Ruby初級者向けレッスン 53回 ─── Array と Hash
第三回R勉強会
第三回R勉強会
2012 keynote-2
2012 keynote-2
俺のフックがこんなに簡単なわけがない。
俺のフックがこんなに簡単なわけがない。
Ol genomgång
Ol genomgång
PHP と MySQL でカジュアルに MapReduce する (Short Version)
PHP と MySQL でカジュアルに MapReduce する (Short Version)
Rによるemailコミュニケーションの可視化
Rによるemailコミュニケーションの可視化
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
Currying in perl
Currying in perl
D3.jsによるDOM操作
D3.jsによるDOM操作
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
Monadicプログラミング マニアックス
Monadicプログラミング マニアックス
PHP と MySQL でカジュアルに MapReduce する
PHP と MySQL でカジュアルに MapReduce する
En vedette
20150303ぞくパタLT-ゆるふわ構造学習
20150303ぞくパタLT-ゆるふわ構造学習
Toru Imai
Rで潜在ランク分析
Rで潜在ランク分析
Hiroshi Shimizu
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
Shuyo Nakatani
Mxnetで回帰 #TokyoR 53th
Mxnetで回帰 #TokyoR 53th
Akifumi Eguchi
Rcppのすすめ
Rcppのすすめ
Masaki Tsuda
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42
Atsushi Hayakawa
Dummiesパッケージ
Dummiesパッケージ
weda654
20140625 rでのデータ分析(仮) for_tokyor
20140625 rでのデータ分析(仮) for_tokyor
Takashi Kitano
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
R を起動するその前に
R を起動するその前に
Kosei ABE
TokyoR42_around_chaining
TokyoR42_around_chaining
TokorosawaYoshio
Rで代数統計 TokyoR #42 LT
Rで代数統計 TokyoR #42 LT
Toru Imai
マルコフ連鎖モンテカルロ法入門-1
マルコフ連鎖モンテカルロ法入門-1
Nagi Teramo
最強のハードディスクはどれだ?
最強のハードディスクはどれだ?
Atsushi Hayakawa
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
yutannihilation
Tokyor42 ggplot2
Tokyor42 ggplot2
Yohei Sato
Tokyor42_r_datamining_18
Tokyor42_r_datamining_18
Yohei Sato
Tokyo r30 anova
Tokyo r30 anova
Takashi Minoda
Tokyo r33 beginner
Tokyo r33 beginner
Takashi Minoda
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Yohei Sato
En vedette
(20)
20150303ぞくパタLT-ゆるふわ構造学習
20150303ぞくパタLT-ゆるふわ構造学習
Rで潜在ランク分析
Rで潜在ランク分析
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
Mxnetで回帰 #TokyoR 53th
Mxnetで回帰 #TokyoR 53th
Rcppのすすめ
Rcppのすすめ
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42
Dummiesパッケージ
Dummiesパッケージ
20140625 rでのデータ分析(仮) for_tokyor
20140625 rでのデータ分析(仮) for_tokyor
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
R を起動するその前に
R を起動するその前に
TokyoR42_around_chaining
TokyoR42_around_chaining
Rで代数統計 TokyoR #42 LT
Rで代数統計 TokyoR #42 LT
マルコフ連鎖モンテカルロ法入門-1
マルコフ連鎖モンテカルロ法入門-1
最強のハードディスクはどれだ?
最強のハードディスクはどれだ?
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
Tokyor42 ggplot2
Tokyor42 ggplot2
Tokyor42_r_datamining_18
Tokyor42_r_datamining_18
Tokyo r30 anova
Tokyo r30 anova
Tokyo r33 beginner
Tokyo r33 beginner
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Similaire à 20170923 excelユーザーのためのr入門
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
Masahiro Hayashi
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
Haruka Ozaki
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
Masahiro Hayashi
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017
wada, kazumi
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編
wada, kazumi
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
ericsagnes
Python opt
Python opt
Mikio Kubo
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)
Masahiro Hayashi
Factor型の注意点
Factor型の注意点
Hiroki K
MapReduce入門
MapReduce入門
Satoshi Noto
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
Prunus 1350
Scala on Hadoop
Scala on Hadoop
Shinji Tanaka
入門機械学習1,2章
入門機械学習1,2章
Kazufumi Ohkawa
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016
wada, kazumi
KETpic できれいな図を書こう
KETpic できれいな図を書こう
Yoshitomo Akimoto
R intro
R intro
yayamamo @ DBCLS Kashiwanoha
R言語勉強会#5.pdf
R言語勉強会#5.pdf
Takuya Kubo
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
Nobuaki Oshiro
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
Shintaro Fukushima
Tokyo r28 1
Tokyo r28 1
Takashi Minoda
Similaire à 20170923 excelユーザーのためのr入門
(20)
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
Python opt
Python opt
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)
Factor型の注意点
Factor型の注意点
MapReduce入門
MapReduce入門
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
Scala on Hadoop
Scala on Hadoop
入門機械学習1,2章
入門機械学習1,2章
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016
KETpic できれいな図を書こう
KETpic できれいな図を書こう
R intro
R intro
R言語勉強会#5.pdf
R言語勉強会#5.pdf
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
Tokyo r28 1
Tokyo r28 1
Plus de Takashi Kitano
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
Takashi Kitano
{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips
Takashi Kitano
令和から本気出す
令和から本気出す
Takashi Kitano
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
Takashi Kitano
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
Takashi Kitano
{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析
Takashi Kitano
mxnetで頑張る深層学習
mxnetで頑張る深層学習
Takashi Kitano
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
Takashi Kitano
Rによるウイスキー分析
Rによるウイスキー分析
Takashi Kitano
20160311 基礎からのベイズ統計学輪読会第6章 公開ver
20160311 基礎からのベイズ統計学輪読会第6章 公開ver
Takashi Kitano
lubridateパッケージ入門
lubridateパッケージ入門
Takashi Kitano
20150329 tokyo r47
20150329 tokyo r47
Takashi Kitano
Google's r style guideのすゝめ
Google's r style guideのすゝめ
Takashi Kitano
Plus de Takashi Kitano
(13)
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips
令和から本気出す
令和から本気出す
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析
mxnetで頑張る深層学習
mxnetで頑張る深層学習
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
Rによるウイスキー分析
Rによるウイスキー分析
20160311 基礎からのベイズ統計学輪読会第6章 公開ver
20160311 基礎からのベイズ統計学輪読会第6章 公開ver
lubridateパッケージ入門
lubridateパッケージ入門
20150329 tokyo r47
20150329 tokyo r47
Google's r style guideのすゝめ
Google's r style guideのすゝめ
20170923 excelユーザーのためのr入門
1.
Excel ユーザーのためのR 入門 2017-09-23 Tokyo.R#65 @kashitan
2.
Agenda • データハンドリング • 集約関数 •
ピボットテーブル • 分析ツール
3.
sample data http://tomslee.net/airbnb-data-collection-get-the-data
4.
Agenda • データハンドリング • 集約関数 •
ピボットテーブル • 分析ツール
5.
data.frame ExcelのsheetはRのdata.frame
6.
> sheet1 <-
data.frame( + name = c("Access", + "Excel", + "Powerpoint", + "Word"), + price = rep(15984, 4), + stringsAsFactors = FALSE + ) data.frame() にc() で値を列挙 data.frameの作成
7.
d <- read.table() テキストファイルの取り込みはread.table()
* read.csv()でも可 テキストファイルの取り込み
8.
d <- read.table( file
= "ファイル名" ) ファイル名はfileで指定 テキストファイルの取り込み
9.
d <- read.table( file
= "ファイル名", header = TRUE ) 先頭行をデータの見出しとして使用するはheader = TRUE テキストファイルの取り込み
10.
d <- read.table( file
= "ファイル名", header = TRUE, fileEncoding = "CP932" ) エンコーディングはfileEncodingで指定 テキストファイルの取り込み
11.
d <- read.table( file
= "ファイル名", header = TRUE, fileEncoding = "CP932", sep = "," ) 区切り文字はsepで指定 テキストファイルの取り込み
12.
d <- read.table( file
= "ファイル名", header = TRUE, fileEncoding = "CP932", sep = ",", quote = "¥"" ) 文字列の引用符はquoteで指定 テキストファイルの取り込み
13.
d <- read.table( file
= "ファイル名", header = TRUE, fileEncoding = "CP932", sep = ",", quote = "¥"" ) データ形式は自動で判別される テキストファイルの取り込み
14.
d <- read.table( file
= "ファイル名", header = TRUE, fileEncoding = "CP932", sep = ",", quote = "¥"", stringsAsFactors = FALSE ) 文字列はFactor型となるのでstringsAsFactor = FALSEを推奨 テキストファイルの取り込み
15.
d <- read.table( file
= "ファイル名", header = TRUE, fileEncoding = "CP932", sep = ",", quote = "¥"" , colClasses = c("integer", "integer", ...) ) 明示的にデータ形式を指定する場合はcolClassesで指定 テキストファイルの取り込み
16.
• 数値 • 日付 •
時刻 • 文字列 • TRUE(), FALSE() ⇒numeric, integer ⇒Date ⇒POSIXct, POSIXlt, POSIXt ⇒character ⇒logical データ形式の対応は上記の通り Excelのデータ形式とRのデータ型
17.
> d[1, c("room_id")] [1]
6119821 シート名!列名行番号 変数名[行番号, c(列名)] データの参照
18.
> d$room_id[1] [1] 6119821 変数名$列名[行番号] データの参照 シート名!列名行番号
19.
> d[1, 1] [1]
6119821 変数名 [行番号, 列番号] データの参照 シート名!列名行番号
20.
> d[2:3, ] room_id
survey_id host_id ... 2 13785072 1435 1243056 ... 3 19165502 1435 35011953 ... 列番号を省略するとすべての列が返される 複数行の参照
21.
> d[, 2:3] survey_id
host_id 1 1435 31751507 2 1435 1243056 3 1435 35011953 4 1435 109568126 … 行番号を省略するとすべての列が返される 複数列の参照
22.
> d[, c("survey_id",
"host_id")] survey_id host_id 1 1435 31751507 2 1435 1243056 3 1435 35011953 4 1435 109568126 … 列名をベクトルで与えてもOK 複数列の参照
23.
> d$price[2] +
10 [1] 262 > d$price[2] - 10 [1] 242 > d$price[2] * 10 [1] 2520 > d$price[2] / 10 [1] 25.2 四則演算は同じ 四則演算
24.
> d$price[2] %/%
10 [1] 25 > d$price[2] %% 10 [1] 2 整数商は%/%, 余りは%% 剰余
25.
> d$price[2] [1] 252 >
d$price[2]^2 [1] 63504 > sqrt(d$price[2]) [1] 15.87451 累乗、平方根は同じ 累乗, 平方根
26.
> # デフォルトの底はe >
log(d$price[2]) [1] 5.529429 > > log(d$price[2], 10) [1] 2.401401 > log(d$price[2], 2) [1] 7.97728 Excelのlog()の底のデフォルトは10, Rのlog()は自然数e 対数
27.
> d$overall_satisfaction[1] [1] 4.5 >
ifelse(d$overall_satisfaction[1] > 3, + "pos", "neg") [1] "pos" Excelのif()はRのifelse() 条件分岐
28.
> d$overall_satisfaction[1] [1] 4.5 >
d$price[1] [1] 90 > d$overall_satisfaction[1] > 3 & + d$price[1] == 90 [1] TRUE Excelのand()は& 条件分岐
29.
> d$overall_satisfaction[1] [1] 4.5 >
d$price[1] [1] 90 > d$overall_satisfaction[1] < 3 | + d$price[1] > 100 [1] FALSE Excelのor()は| 条件分岐
30.
> d$overall_satisfaction[1] [1] 4.5 >
d$overall_satisfaction[1] > 3 [1] TRUE > !(d$overall_satisfaction[1] > 3) [1] FALSE Excelのnot()は! 条件分岐
31.
> is.na(d$country[1]) [1] TRUE 欠損値の確認はis.na
() 欠損値の確認
32.
> # sepで連結時の文字を指定 >
paste(d$room_type[2], d$city[2], + sep="-") [1] "Shared room-Seattle" > # paste0()はpaste(..., sep="")と同じ > paste0(d$room_type[2], d$city[2]) [1] "Shared roomSeattle" 文字列の連結はpaste(), paste0() 文字列の連結
33.
> substr(d$room_type[2], 1,
5) [1] "Share" > # 4文字目から6文字目 > substr(d$room_type[2], 4, 6) [1] "red" 文字列の一部取り出しはsubstr() 文字列の一部取り出し
34.
> # 文字列の長さを取得 >
n <- nchar(d$room_type[2]) > substr(d$room_type[2], n-4+1, n) [1] "room" Excelのright()は少し工夫が必要 文字列の一部取り出し
35.
> # stringr::str_subは負数で >
# 末尾からの位置を指定できる > library(stringr) > str_sub(d$room_type[2], -4) [1] "room" Excelのright()はstringr::str_sub()が便利 文字列の一部取り出し
36.
> d$neighborhood[1] [1] "Pike-Market" >
gsub(d$neighborhood[1], + "Pike-Market", + "1st Starbucks") [1] "1st Starbucks" Excelのsubstitute()はRのgsub() 文字列の置換
37.
> d$room_type[1] [1] "Shared
room" > tolower(d$room_type[1]) [1] "shared room" > toupper(d$room_type[1]) [1] "SHARED ROOM" Excelのlower(), upper()はRのtolower(), toupper () 大文字, 小文字の変換
38.
> d$subtotal <-
d$reviews * d$price > d$subtotal [1] 7290 0 0 0 0 0 0 0 0 0 4470 0 … [16] 0 0 0 0 100 0 0 765 252 567 … [31] 525 0 0 79 138 219 1152 248 … [46] 2625 2015 1950 0 0 0 144 0 48… [61] 225 405 49 0 48 200 0 360 … … Rでは同じ長さのベクトルの演算は、各要素ごとの演算となる ベクトル演算
39.
> d[order(d$price), + c("room_id",
"price")] room_id price 110 18852442 10 4370 13726014 10 4371 4825073 10 135 13560642 14 6302 6015931 19 order () で並べ替えの順番を取得して行に指定 並べ替え
40.
> d[order(d$price, + decreasing
= TRUE), + c("room_id", "price")] room_id price 194 5240694 10000 193 153967 9300 195 16816051 1395 197 16740073 1200 降順はdescreasing = TRUE 並べ替え
41.
> subset(d, + room_type
== "Private room") room_id host_id room_type ... 15647498 60642090 Private room ... 15906510 103181101 Private room ... 5978216 31036041 Private room ... ... subset() で条件に合致するレコードを取得 フィルター
42.
> merge( + d[,
c("room_id", "city", "country")], + m, by="city", all.x = TRUE) city room_id country.x country.y 1 Seattle 6119821 NA USA 2 Seattle 13785072 NA USA 3 Seattle 19165502 NA USA … merge() で複数のdata.frameをJOINすることが可能 vlookup()
43.
merge() の引数で結果が異なる vlookup() 指定なし all
= TRUE all.x = TRUE all.y = TRUE
44.
> write.table(d, + file
= "file_name.txt", + quote = FALSE, + na = "", + sep = "¥t", + row.names = FALSE, + fileEncoding = "UTF8") テキストファイルへの出力はwrite.table() テキストファイルへの出力
45.
> save(d, m, +
file = "airbnb_seattle.RData") data.frameなどのオブジェクトを保存する場合はsave() 名前を付けて保存
46.
> load(file =
"airbnb_seattle.RData") 保存したオブジェクトを読み込むにはload() ファイルを開く
47.
• quotient • mod •
ln • log10 • log(x, 底) • sqrt ⇒%/% ⇒%% ⇒log(x) ⇒log(x, 10) ⇒log(x, 底) ⇒sqrt データハンドリングまとめ
48.
• if • and •
or • not • 並べ替え • フィルター • vlookup ⇒ifelse ⇒& ⇒| ⇒not ⇒order ⇒subset ⇒merge データハンドリングまとめ
49.
• &, concatenate •
left • mid • right • substitute • lower • upper ⇒paste, paste0, stringr::str_c ⇒substr, stringr::str_sub ⇒substr, stringr::str_sub ⇒substr, stringr::str_sub ⇒gsub, stringr::str_replace_all ⇒tolower ⇒toupper データハンドリングまとめ
50.
• テキストファイルの取込 • テキストファイルに出力 •
オブジェクトの保存 • オブジェクトの読み込み ⇒read.table, read.csv ⇒write.table, write.csv ⇒save ⇒load データハンドリングまとめ
51.
Agenda • データハンドリング • 集約関数 •
ピボットテーブル • 分析ツール
52.
> sum(d$price) [1] 913518 >
mean(d$price) [1] 142.7595 > var(d$price) [1] 38718.49 > sd(d$price) [1] 196.7701 average()はmean() , stdev()はsd() 合計, 平均, 分散, 標準偏差
53.
> max(d$price) [1] 10000 >
min(d$price) [1] 10 > median(d$price) [1] 110 > # mode()はデータ型を返す > mode(d$price) [1] "numeric" Rには最頻値を返す関数はない 最大値, 最小値, 中央値, 最頻値
54.
> range(d$price) [1] 10
10000 > range(d$price)[1] [1] 10 > range(d$price)[2] [1] 10000 範囲(最大値と最小値の差) Rのrange()は最大値と最小値がベクトルで返る
55.
> quantile(d$price) 0% 25%
50% 75% 100% 10 79 110 172 10000 > quantile(d$price)[2] 25% 79 > quantile(d$price)[4] 75% 172 四分位数 Rのquantile()は四分位数がベクトルで返る
56.
> quantile(d$price, 0.1) 10% 55 >
quantile(d$price, c(0.1, 0.9)) 10% 90% 55 250 パーセンタイル値 Excelのpercentile()はRのquantile()に引数で分位点を指定
57.
• sum • average •
median • mode • var • stdev ⇒sum ⇒mean ⇒median ⇒なし ⇒var ⇒sd まとめ
58.
• max • min •
quartile • percentile ⇒max ⇒min ⇒quantile ⇒quantile 集約関数まとめ
59.
Agenda • データハンドリング • 集約関数 •
ピボットテーブル • 分析ツール
60.
Excel のピボットテーブルは 神ツール
61.
想像してください
62.
予測モデルの更新が 終わりました! 重要変数を 送ります!
63.
目的変数と 説明変数※の クロス集計表も お願いね ※ 説明変数は200個くらいある
64.
65.
Excel のピボットテーブルは 神ツール ですが繰り返し作業はツラい
66.
R なら繰り返し作業もツラくない
67.
> table(d$neighborhood, d$room_type) Entire
home/apt Private room … Adams 73 39 … Alki 56 17 … Arbor Heights 10 5 … Atlantic 64 31 … Belltown 317 14 … Bitter Lake 10 9 … Briarcliff 26 9 … Brighton 13 12 … … データの個数 データの個数のカウントはtable()
68.
> tapply(d$reviews, + list(d$neighborhood,
d$room_type), + sum) Entire home/apt Private room … Adams 2793 1468 … Alki 1697 555 … Arbor Heights 196 122 … Atlantic 1983 1618 … Belltown 11029 133 … Bitter Lake 293 109 … Briarcliff 337 125 … Brighton 706 334 … Broadview 523 379 … 合計, 平均, 最大, 最小 合計や平均, 最大, 最小はtapply()の引数に集約関数を指定
69.
> # {dplyr}と{tidyr}を使用しないと >
# 難しい 総計に対する比率, 累計, etc… Excelの総計に対する比率は累計などはRのデフォルトだと難しい
70.
> library(dplyr) > library(tidyr) >
d %>% + select(neighborhood, room_type, reviews) %>% + mutate(prop = reviews/sum(reviews)*100) %>% + group_by(neighborhood, room_type) %>% + summarise(prop = sum(prop)) %>% + ungroup() %>% + spread(key = room_type, value = prop) 総計に対する比率 詳しくはdplyr再入門を参照
71.
# A tibble:
88 x 4 neighborhood `Entire home/apt` `Private room` … * <fctr> <dbl> <dbl> <dbl> 1 Adams 1.34847410 0.70875760 … 2 Alki 0.81931992 0.26795672 … 3 Arbor Heights 0.09462976 0.05890220 … 4 Atlantic 0.95740212 0.78117833 … 5 Belltown 5.32485528 0.06421305 … 6 Bitter Lake 0.14146184 0.05262573 … 7 Briarcliff 0.16270525 0.06035061 … 8 Brighton 0.34086026 0.16125684 … 総計に対する比率 詳しくはdplyr再入門を参照
72.
> d %>% +
select(neighborhood, room_type, reviews) %>% + group_by(neighborhood, room_type) %>% + summarise(subtotal = sum(reviews)) %>% + ungroup() %>% + arrange(room_type, neighborhood) %>% + group_by(room_type) %>% + mutate(cumsum = cumsum(subtotal)) %>% + ungroup() %>% + select(neighborhood, room_type, cumsum) %>% + spread(key = room_type, value = cumsum) 累計 詳しくはdplyr再入門を参照
73.
# A tibble:
88 x 4 neighborhood`Entire home/apt` `Private room` … * <fctr> <int> <int> … 1 Adams 2793 1468 … 2 Alki 4490 2023 … 3 Arbor Heights 4686 2145 … 4 Atlantic 6669 3763 … 5 Belltown 17698 3896 … 6 Bitter Lake 17991 4005 … 7 Briarcliff 18328 4130 … 8 Brighton 19034 4464 … 累計 詳しくはdplyr再入門を参照
74.
Agenda • データハンドリング • 集約関数 •
ピボットテーブル • 分析ツール
75.
• ファイル →
オプション Excelの分析ツール
76.
Excelの分析ツール 1. アドインを選択 2. 分析ツールを選択 3.
設定を選択
77.
Excelの分析ツール 分析ツールにチェックしてOK
78.
• データ →
データ分析 Excelの分析ツール データ分析がデータタブに 追加される
79.
Excelの分析ツール
80.
Excelの分析ツール • 基本統計量 :
データの要約 • ヒストグラム : データの分布を確認 • 相関 : 項目間の関係性を確認 • 回帰分析 : ある項目の予測式を作成
81.
> summary(d[, c("price", +
"accommodates", + "bedrooms")]) 基本統計量 基本統計量の算出はsummary()
82.
price accommodatesbedrooms … Min.
: 10.0 Min. : 1.000 Min. : 0.000 1st Qu.: 79.0 1st Qu.: 2.000 1st Qu.: 1.000 Median : 110.0 Median : 3.000 Median : 1.000 Mean : 142.8 Mean : 3.571 Mean : 1.385 3rd Qu.: 172.0 3rd Qu.: 4.000 3rd Qu.: 2.000 Max. :10000.0 Max. :16.000 Max. :10.000 基本統計量 Rのsummary() は標準偏差やデータの個数などは表示されない
83.
> summary(d[, c("room_type",
"country")]) room_type country Entire home/apt: 4526 Mode:logical Private room : 1727 NA's:6399 Shared room : 146 基本統計量 Rのsummary()は因子型の場合に水準毎のデータ数を返す
84.
> summary(d[, c("room_type",
"country")]) room_type country Entire home/apt: 4526 Mode:logical Private room : 1727 NA's:6399 Shared room : 146 基本統計量 Rのsummary()は欠損の数を表示
85.
> hist(d[d$price <
600, c("price")]) ヒストグラム ヒストグラムの描画はhist ()
86.
ヒストグラム ヒストグラムの描画はhist ()
87.
> h <-
hist(d[d$price < 600, + c("price")]) > h$counts [1] 521 2448 1546 879 395 272 108 75 37 52 11 9 ヒストグラム 頻度の取得はhist () のオブジェクトに保存しcountsを参照
88.
> b <-
seq(from = 0, to = 600, by = 100) > hist(d[d$price < 600, c("price")], + breaks = b) ヒストグラム 区間配列の変更するにはhist () の引数breaksを指定
89.
相関 相関係数(そうかんけいすう、英: correlation coefficient) は、2つの確率変数の間にある線形な関係の強弱を測る指 標である[1]。相関係数は無次元量で、−1以上1以下の実数 に値をとる。相関係数が正のとき確率変数には正の相関が、 負のとき確率変数には負の相関があるという。また相関係 数が0のとき確率変数は無相関であるという[2][3]
。 https://ja.wikipedia.org/wiki/相関係数
90.
> cor(d[d$price <
9000, + c("price", + "accommodates", + "bedrooms", + "reviews")]) 相関 相関係数行列の算出はcor()
91.
price accommodates bedrooms price
1.0000000 0.65552315 0.6131361 accommodates 0.6555231 1.00000000 0.7817959 bedrooms 0.6131361 0.78179593 1.0000000 reviews -0.1697077 -0.08256885 -0.1515890 相関
92.
相関≠因果関係 相関
93.
疑似相関 http://tylervigen.com/spurious-correlations
94.
回帰分析 回帰(かいき、英: regression)とは、統計学において、Y が連続値の時にデータに Y
= f(X) というモデル(「定量的な 関係の構造[1]」)を当てはめる事。別の言い方では、連続尺 度の従属変数(目的変数)Y と独立変数(説明変数)X の 間にモデルを当てはめること。X が1次元ならば単回帰、X が2次元以上ならば重回帰と言う。Y が離散の場合は分類 と言う。 回帰分析(かいきぶんせき、英: regression analysis)とは、 回帰により分析する事。 回帰で使われる、最も基本的なモデルは Y = AX + B とい う形式の線形回帰である。 https://ja.wikipedia.org/wiki/回帰分析
95.
回帰分析 アッシェンフェルターのワイン方程式 ワインの品質=12.145 +0.00117 × 冬の降雨量 +0.0614
× 育成期平均気温 −0.00386 × 収穫期降雨量
96.
> lm.mdl <-
lm( + price~accommodates+bedrooms, + data = d[d$price < 9000, ]) 回帰分析 シンプルな回帰分析はlm()
97.
> summary(lm.mdl) (中略) Residual standard
error: 75.32 on 6394 degrees of freedom Multiple R-squared: 0.4558, Adjusted R-squared: 0.4556 F-statistic: 2677 on 2 and 6394 DF, p-value: < 2.2e-16 回帰分析 summary()で結果を確認
98.
> summary(lm.mdl) (中略) Coefficients: Estimate
Std. Error t value Pr(>|t|) (Intercept) 27.9864 1.8074 15.48 <2e-16 *** accommodates 21.1150 0.6895 30.62 <2e-16 *** bedrooms 26.3005 1.5032 17.50 <2e-16 *** 回帰分析 price = 27.9864 + 21.1150 ×accommodates + 26.3005 × bedrooms
99.
> lm.mdl <-
lm(price~accommodates+bedrooms+room_type, data = d[d$price < 9000, ]) > summary(lm.mdl) (中略) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 53.0719 2.2779 23.299 < 2e-16 *** accommodates 15.0748 0.7576 19.898 < 2e-16 *** bedrooms 32.3503 1.5096 21.430 < 2e-16 *** room_typePrivate room -39.9984 2.3746 -16.844 < 2e-16 *** room_typeShared room -48.4926 6.3565 -7.629 2.71e-14 *** 回帰分析 Rでは因子型の変数も使用可能
100.
> lm.mdl <-
lm(price~accommodates+bedrooms+room_type, data = d[d$price < 9000, ]) > summary(lm.mdl) (中略) Residual standard error: 73.6 on 6392 degrees of freedom Multiple R-squared: 0.4805, Adjusted R-squared: 0.4802 F-statistic: 1478 on 4 and 6392 DF, p-value: < 2.2e-16 回帰分析 補正R2も少し改善(0.4556 → 0.4802)
101.
回帰分析 回帰分析はお手軽だけど 多重共線性(通称マルチコ)など ハマるところが多いので要注意
102.
まとめ • 基本統計量 :
データの要約 • ヒストグラム : データの分布を確認 • 相関 : 項目間の関係性を確認 • 回帰分析 : ある項目の予測式を作成 R でもっと簡単に
103.
Have Fun!!