rvestでスクレイピング: 4番打者の起用人数

概要

rvestでスクレイピングをする練習をします。

プロ野球のスタメンに関するデータがありました。

プロ野球データFreakさまのページです。

ここからデータを集めて整形し、4番打者の起用人数を調べてみましょう。

準備

library(data.table)
library(dplyr)
library(pipeR)
library(rvest)

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試合;