rvestでスクレイピングをする練習をします。
プロ野球のスタメンに関するデータがありました。
プロ野球データFreakさまのページです。
ここからデータを集めて整形し、4番打者の起用人数を調べてみましょう。
library(data.table)
library(dplyr)
library(pipeR)
library(rvest)
rvest::html_tableを利用して、table部分をパースしてデータフレームで取得します。
あとは、urlを変えながら、全チーム分取得する。
取得したものをつかって遊んでみる。
2009年から2015年の全試合のスタメンデータ(10848行)。
dat = fread("startingMemberData.csv")
## データの大きさ
dat %>% dim
## [1] 10848 12
4番打者の起用人数を調べてみます。
巨人,2014,阿部 慎之助57試合; 村田 修一44試合; セペダ18試合; アンダーソン14試合; 長野 久義6試合; 高橋 由伸2試合; 大田 泰示2試合; ロペス1試合;
みたいな形式で表示します。
dat_v4 =
dat %>%
select(team, year, V4) %>%
group_by(team,year, V4) %>%
summarise(n = n()) %>%
arrange(desc(n)) %>%
mutate(game = paste(as.character(n), "試合", sep="")) %>%
mutate(tmp = paste(V4, game, "; ", sep= "")) %>%
group_by(team, year) %>%
summarise(res = paste(tmp, collapse = ""))
dat_v4 %>% head
## team year
## 1 bs 2009
## 2 bs 2010
## 3 bs 2011
## 4 bs 2012
## 5 bs 2013
## 6 bs 2014
## res
## 1 ローズ81試合; ラロッカ34試合; カブレラ21試合; フェルナンデス5試合; 後藤 光尊3試合;
## 2 カブレラ112試合; T-岡田15試合; 北川 博敏10試合; ラロッカ7試合;
## 3 T-岡田124試合; 後藤 光尊8試合; 李 承燁6試合; 竹原 直隆3試合; カラバイヨ2試合; 北川 博敏1試合;
## 4 李 大浩144試合;
## 5 李 大浩141試合; T-岡田2試合; バルディリス1試合;
## 6 ペーニャ82試合; 糸井 嘉男50試合; T-岡田6試合; 竹原 直隆3試合; ベタンコート2試合; ヘルマン1試合;
## チーム名を漢字にしたい
team_char = c("bs", "c", "d", "e", "f", "g", "h", "l", "m", "s", "t", "yb")
team_char %>% length
## [1] 12
team_name = c("大阪", "広島", "中日", "楽天", "日ハム", "巨人", "福岡", "西武", "千葉", "ヤクルト", "阪神", "横浜")
team_df = data.frame(team = team_char, name = team_name)
## マージすればOK
dat_v4 %>%
merge(team_df, by = "team") %>%
select(name, year, res) %>%
write.csv("dat_v4.csv", row.names=FALSE, quote=FALSE)
結果を見てみます。
library(xtable)
fread("dat_v4.csv") %>%
xtable %>%
print(type="html")
name | year | res | |
---|---|---|---|
1 | 大阪 | 2009 | ローズ81試合; ラロッカ34試合; カブレラ21試合; フェルナンデス5試合; 後藤 光尊3試合; |
2 | 大阪 | 2010 | カブレラ112試合; T-岡田15試合; 北川 博敏10試合; ラロッカ7試合; |
3 | 大阪 | 2011 | T-岡田124試合; 後藤 光尊8試合; 李 承燁6試合; 竹原 直隆3試合; カラバイヨ2試合; 北川 博敏1試合; |
4 | 大阪 | 2012 | 李 大浩144試合; |
5 | 大阪 | 2013 | 李 大浩141試合; T-岡田2試合; バルディリス1試合; |
6 | 大阪 | 2014 | ペーニャ82試合; 糸井 嘉男50試合; T-岡田6試合; 竹原 直隆3試合; ベタンコート2試合; ヘルマン1試合; |
7 | 大阪 | 2015 | カラバイヨ19試合; 中島 裕之13試合; T-岡田9試合; 竹原 直隆1試合; |
8 | 広島 | 2009 | 栗原 健太138試合; シーボル6試合; |
9 | 広島 | 2010 | 栗原 健太104試合; 嶋 重宣23試合; ヒューバー16試合; 廣瀬 純1試合; |
10 | 広島 | 2011 | 栗原 健太104試合; トレーシー39試合; 岩本 貴裕1試合; |
11 | 広島 | 2012 | エルドレッド51試合; ニック37試合; 岩本 貴裕32試合; 栗原 健太20試合; 松山 竜平4試合; |
12 | 広島 | 2013 | エルドレッド62試合; キラ41試合; 廣瀬 純33試合; ニック3試合; 松山 竜平3試合; 栗原 健太1試合; 岩本 貴裕1試合; |
13 | 広島 | 2014 | エルドレッド110試合; ロサリオ21試合; キラ7試合; 丸 佳浩3試合; 松山 竜平2試合; 岩本 貴裕1試合; |
14 | 広島 | 2015 | 新井 貴浩19試合; ロサリオ9試合; グスマン8試合; 松山 竜平3試合; シアーホルツ1試合; |
15 | 中日 | 2009 | ブランコ144試合; |
16 | 中日 | 2010 | ブランコ74試合; 和田 一浩48試合; 森野 将彦22試合; |
17 | 中日 | 2011 | 和田 一浩73試合; ブランコ42試合; 森野 将彦27試合; 平田 良介1試合; 佐伯 貴弘1試合; |
18 | 中日 | 2012 | ブランコ61試合; 和田 一浩34試合; 森野 将彦25試合; 山﨑 武司24試合; |
19 | 中日 | 2013 | 和田 一浩82試合; ルナ57試合; 平田 良介4試合; 山﨑 武司1試合; |
20 | 中日 | 2014 | 平田 良介68試合; ルナ42試合; 森野 将彦23試合; 和田 一浩11試合; |
21 | 中日 | 2015 | ルナ34試合; 福田 永将8試合; ナニータ1試合; |
22 | 楽天 | 2009 | 山﨑 武司102試合; セギノール19試合; 草野 大輔17試合; 中村 紀洋6試合; |
23 | 楽天 | 2010 | 山﨑 武司90試合; 中村 紀洋40試合; ルイーズ11試合; 鉄平1試合; |
24 | 楽天 | 2011 | 山﨑 武司99試合; ガルシア27試合; ルイーズ16試合; 草野 大輔2試合; |
25 | 楽天 | 2012 | フェルナンデス63試合; ガルシア54試合; 枡田 慎太郎19試合; テレーロ3試合; 岩村 明憲2試合; ハーパー1試合; 河田 寿司1試合; 草野 大輔1試合; |
26 | 楽天 | 2013 | ジョーンズ143試合; マギー1試合; |
27 | 楽天 | 2014 | ジョーンズ132試合; ラッツ5試合; 枡田 慎太郎3試合; 西田 哲朗2試合; ボウカー1試合; 松井 稼頭央1試合; |
28 | 楽天 | 2015 | ペーニャ27試合; 松井 稼頭央10試合; サンチェス2試合; |
29 | 日ハム | 2009 | 高橋 信二97試合; スレッジ24試合; 小谷野 栄一21試合; ボッツ2試合; |
30 | 日ハム | 2010 | 小谷野 栄一101試合; 高橋 信二29試合; 二岡 智宏13試合; |
31 | 日ハム | 2011 | 中田 翔74試合; 小谷野 栄一70試合; |
32 | 日ハム | 2012 | 中田 翔144試合; |
33 | 日ハム | 2013 | 中田 翔106試合; アブレイユ36試合; 陽 岱鋼2試合; |
34 | 日ハム | 2014 | 中田 翔142試合; 陽 岱鋼2試合; |
35 | 日ハム | 2015 | 中田 翔40試合; |
36 | 巨人 | 2009 | ラミレス144試合; |
37 | 巨人 | 2010 | ラミレス144試合; |
38 | 巨人 | 2011 | ラミレス98試合; 阿部 慎之助22試合; 長野 久義16試合; 高橋 由伸8試合; |
39 | 巨人 | 2012 | 阿部 慎之助80試合; 村田 修一64試合; |
40 | 巨人 | 2013 | 阿部 慎之助99試合; 村田 修一37試合; 高橋 由伸5試合; ロペス2試合; ボウカー1試合; |
41 | 巨人 | 2014 | 阿部 慎之助57試合; 村田 修一44試合; セペダ18試合; アンダーソン14試合; 長野 久義6試合; 高橋 由伸2試合; 大田 泰示2試合; ロペス1試合; |
42 | 巨人 | 2015 | 坂本 勇人18試合; 阿部 慎之助13試合; 大田 泰示10試合; 中井 大介1試合; |
43 | 福岡 | 2009 | 小久保 裕紀95試合; 松中 信彦49試合; |
44 | 福岡 | 2010 | 小久保 裕紀107試合; 多村 仁志27試合; 松中 信彦10試合; |
45 | 福岡 | 2011 | 小久保 裕紀51試合; カブレラ46試合; 松中 信彦29試合; 松田 宣浩18試合; |
46 | 福岡 | 2012 | ペーニャ87試合; 松中 信彦21試合; 小久保 裕紀16試合; カブレラ7試合; 多村 仁志6試合; 松田 宣浩5試合; 内川 聖一2試合; |
47 | 福岡 | 2013 | 松田 宣浩80試合; ラヘア28試合; 内川 聖一21試合; 柳田 悠岐10試合; ペーニャ4試合; |
48 | 福岡 | 2014 | 李 大浩144試合; |
49 | 福岡 | 2015 | 内川 聖一39試合; |
50 | 西武 | 2009 | 中村 剛也126試合; 後藤 武敏10試合; 中島 裕之7試合; G.G.佐藤1試合; |
51 | 西武 | 2010 | 中村 剛也61試合; フェルナンデス36試合; 中島 裕之23試合; ブラウン13試合; 栗山 巧8試合; 大島 裕行2試合; |
52 | 西武 | 2011 | 中村 剛也143試合; フェルナンデス1試合; |
53 | 西武 | 2012 | 中村 剛也119試合; 中島 裕之25試合; |
54 | 西武 | 2013 | 浅村 栄斗96試合; オーティズ27試合; スピリー19試合; 上本 達之1試合; 大﨑 雄太朗1試合; |
55 | 西武 | 2014 | 中村 剛也91試合; 浅村 栄斗38試合; メヒア15試合; |
56 | 西武 | 2015 | 中村 剛也39試合; メヒア1試合; |
57 | 千葉 | 2009 | 井口 資仁73試合; 大松 尚逸67試合; サブロー2試合; 橋本 将2試合; |
58 | 千葉 | 2010 | 金 泰均131試合; 福浦 和也6試合; 大松 尚逸4試合; サブロー3試合; |
59 | 千葉 | 2011 | カスティーヨ85試合; 金 泰均18試合; 福浦 和也18試合; 大松 尚逸15試合; サブロー5試合; 里崎 智也2試合; 清田 育宏1試合; |
60 | 千葉 | 2012 | サブロー77試合; ホワイトセル59試合; 井口 資仁6試合; 清田 育宏2試合; |
61 | 千葉 | 2013 | 今江 敏晃96試合; ホワイトセル18試合; サブロー8試合; 井口 資仁7試合; ブラゼル7試合; 福浦 和也5試合; 鈴木 大地1試合; 清田 育宏1試合; |
62 | 千葉 | 2014 | デスパイネ39試合; 今江 敏晃38試合; サブロー25試合; ブラゼル11試合; 井口 資仁9試合; 大松 尚逸8試合; クルーズ5試合; 井上 晴哉3試合; 福浦 和也3試合; 角中 勝也2試合; ハフマン1試合; |
63 | 千葉 | 2015 | 今江 敏晃15試合; デスパイネ15試合; クルーズ8試合; |
64 | ヤクルト | 2009 | デントナ93試合; ガイエル17試合; 畠山 和洋17試合; 青木 宣親16試合; 武内 晋一1試合; |
65 | ヤクルト | 2010 | デントナ64試合; ホワイトセル59試合; ガイエル16試合; 青木 宣親2試合; 飯原 誉士2試合; 畠山 和洋1試合; |
66 | ヤクルト | 2011 | 畠山 和洋137試合; ホワイトセル6試合; バレンティン1試合; |
67 | ヤクルト | 2012 | 畠山 和洋89試合; バレンティン40試合; ミレッジ15試合; |
68 | ヤクルト | 2013 | バレンティン121試合; 畠山 和洋19試合; 松元 ユウイチ2試合; ミレッジ1試合; 飯原 誉士1試合; |
69 | ヤクルト | 2014 | バレンティン98試合; 畠山 和洋18試合; 雄平14試合; 川端 慎吾8試合; ミレッジ3試合; 飯原 誉士3試合; |
70 | ヤクルト | 2015 | 雄平27試合; 畠山 和洋13試合; バレンティン1試合; |
71 | 阪神 | 2009 | 金本 知憲144試合; |
72 | 阪神 | 2010 | 新井 貴浩118試合; 金本 知憲26試合; |
73 | 阪神 | 2011 | 新井 貴浩135試合; マートン7試合; 関本 賢太郎2試合; |
74 | 阪神 | 2012 | 新井 貴浩64試合; 新井 良太47試合; 金本 知憲31試合; マートン2試合; |
75 | 阪神 | 2013 | マートン111試合; 鳥谷 敬26試合; 新井 良太7試合; |
76 | 阪神 | 2014 | ゴメス143試合; 新井 貴浩1試合; |
77 | 阪神 | 2015 | ゴメス40試合; |
78 | 横浜 | 2009 | 村田 修一92試合; ジョンソン35試合; 吉村 裕基14試合; 内川 聖一2試合; 佐伯 貴弘1試合; |
79 | 横浜 | 2010 | 村田 修一144試合; |
80 | 横浜 | 2011 | 村田 修一144試合; |
81 | 横浜 | 2012 | ラミレス129試合; 中村 紀洋11試合; ルイーズ2試合; 後藤 武敏1試合; 筒香 嘉智1試合; |
82 | 横浜 | 2013 | ブランコ131試合; 中村 紀洋10試合; 後藤 武敏3試合; |
83 | 横浜 | 2014 | ブランコ71試合; 筒香 嘉智39試合; 中村 紀洋13試合; 後藤 武敏9試合; バルディリス9試合; グリエル2試合; 多村 仁志1試合; |
84 | 横浜 | 2015 | 筒香 嘉智42試合; |