メジャーリーグのデータ解析をしたい ( パワプロ打撃テスト式ランキング)
野球の話です.
パワプロ打撃テスト式ランキング
こんな記事がありました.
セパ、パワプロの打撃テスト式ランキグンwwwww : なんJをまとめた結果www(速報)
パワプロに打撃練習がありますね. こんな感じです.
パワプロ2013 男・村田修一で打撃練習してみた!ホームラン量産でスコアが凄 ...
ボール球見極めなら1点.
シングルヒットなら4点.
2塁打, 3塁打, 本塁打はそれぞれ5, 6, 7点です.
サクセスの最初に "そこのお前" から5点とればいい, みたいなテストです.
ストライク10球で, 何点取れるかが評価の対象になります.
楽しそうです.
実際の, 2013年メジャーリーグの打席結果データで集計してみましょう.
メジャーリーグデータでパワプロ打撃テスト式ランキング
計算方法は元記事と同様です.
総スコアを計算して, 10球で何点取れるかで順位付けをしてみました.
結果.
> head(arrange(dat_final, desc(p_10)), 20) name p_10 score 1: David Ortiz 15.96399 2128 2: Troy Tulowitzki 15.64530 1879 3: Joey Votto 15.56689 2595 4: Ryan Braun 15.07538 900 5: Miguel Cabrera 14.96542 2164 6: David Wright 14.86583 1662 7: Dioner Navarro 14.84034 883 8: Gaby Sanchez 14.51697 1112 9: John Jaso 14.51140 891 10: Carlos Gonzalez 14.37977 1507 11: Willie Bloomquist 14.37318 493 12: Aramis Ramirez 14.27491 1132 13: George Kottaras 14.27215 451 14: Shane Robinson 14.24324 527 15: Chris Iannetta 14.22028 1304 16: Andrew McCutchen 14.21702 2188 17: Robinson Cano 14.20077 2221 18: Lance Berkman 14.16296 956 19: Ben Zobrist 14.09740 2171 20: Nick Swisher 14.08638 2120
1位はレッドソックスのD. オルティズでした. ワールドシリーズ制覇に貢献した, 大打者です.
デビッド・オルティーズ - Wikipedia
2位以下は,
トロウィツキー, ボットー, ライアン・ブラウン, ミゲル・カブレラと,
なるほど, といった陣営です.
...
以上です.
次は, 投手編です.
ソースコード
データはretrosheetから引っ張ってきました.
Retrosheet
Rのdplyrとdata.tableで手早く集計できます. 助かります.
library(data.table) library(dplyr) library(stringr) # read data dat = fread("all2013.csv") fields = fread("fields.csv") setnames(dat, fields$Header) # processing datatable dat$ball = with(dat, nchar(PITCH_SEQ_TX)) dat$BB = with(dat, nchar(gsub("[CSFX]","",PITCH_SEQ_TX))) dat$hit_score = with(dat, ifelse(EVENT_CD >= 20 & EVENT_CD <= 23, EVENT_CD - 16, 0)) dat$score = with(dat, hit_score + BB) # summarize dat_pawapuro = dat %.% group_by(BAT_ID) %.% dplyr::summarise(ball = sum(ball), BB = sum(BB), score = sum(score)) dat_pawapuro$p_10 = with(dat_pawapuro, score/ (ball - BB) * 10) # over 500 balls dat_pawapuro_over500ball = subset(dat_pawapuro, ball > 500) # merge with name_id_data master = fread("Master.csv") master$fullname = with(master, paste(nameFirst, nameLast)) name_id_data = master[, c("retroID", "fullname"), with=F] setnames(name_id_data, c("BAT_ID", "name")) dat_fullname = merge(dat_pawapuro_over500ball, name_id_data, by="BAT_ID") dat_final = dat_fullname[, c("name", "p_10", "score"), with=F] # result head(arrange(dat_final, desc(p_10)), 20)