連続5試合のヒット数

概要

連続5試合のチームヒット数合計の計算をnysolで頑張る.

コード

移動窓を利用した集計: mmvstatsを使います. コマンド名が覚えられルキがしません.

使い方:

今回は,

とすれば,

ことになります. 詳細はこちら.

やってみました.

nysolコード

## five-game-streak gross hit
cat ./all2013.csv | 
  mcal c='if(${H_FL}>0, 1,0)' a="HIT_FL" | 
  mcal c='midw($s{GAME_ID},0,3)' a="HOME_TEAM" |
  mcut f=GAME_ID,HOME_TEAM,AWAY_TEAM_ID:AWAY_TEAM,BAT_HOME_ID,HIT_FL | 
  msum k=GAME_ID,HOME_TEAM,AWAY_TEAM,BAT_HOME_ID f=HIT_FL | 
  mcal c='if(${BAT_HOME_ID}==1,$s{HOME_TEAM}, $s{AWAY_TEAM})' a="TEAM" | 
  mcal c='midw($s{GAME_ID}, 3,9)' a="DATE" | 
  mcut f=DATE,TEAM,HIT_FL:HIT | 
  mmvstats s=DATE%n k=TEAM f=HIT t=5 c=sum |  ## ここ
  msortf f=HIT%nr > five_streak.csv

結果

中身を見ます.

dat = data.table::fread("five_streak.csv")
head(dat)
##         DATE TEAM HIT%0nr
## 1: 201309220  COL      74
## 2: 201306070  SLN      73
## 3: 201309080  BOS      73
## 4: 201309240  COL      73
## 5: 201305030  CLE      72
## 6: 201307050  LAN      71

ちゃんと出来ていますね.

RcppRollとかよりも簡単っぽい? でも関数が限られるからなあ.