長らくボードを放置していましたが、
みんなのSCOREのversion4に向けて開発を開始しました。
の計算を三塁打を加味したものに修正。
メンテナンスの都合上、セイバーメトリクスの計算をSQLからTypescript側で行うように修正。
CASE
WHEN ((sum(hit)+sum(twobase)*1+sum(homerun)*2)/sum(at_bats)) is null THEN 0
WHEN ((sum(hit)+sum(twobase)*1+sum(homerun)*2)/sum(at_bats)) is not null THEN ((sum(hit)+sum(twobase)*1+sum(homerun)*2)/sum(at_bats))
END as slg,
CASE
WHEN ((sum(hit)+sum(four_ball))/sum(tpa))+((sum(hit)+sum(twobase)*1+sum(homerun)*2)/sum(at_bats)) is null THEN 0
WHEN ((sum(hit)+sum(four_ball))/sum(tpa))+((sum(hit)+sum(twobase)*1+sum(homerun)*2)/sum(at_bats)) is not null THEN ((sum(hit)+sum(four_ball))/sum(tpa))+((sum(hit)+sum(twobase)*1+sum(homerun)*2)/sum(at_bats))
END as ops,
(sum(hit)+sum(four_ball))/sum(tpa) as obp,
((((sum(hit)+sum(twobase)*1+sum(homerun)*2)+0.26*sum(four_ball)-0.03*sum(strike_out)+3*sum(tpa))*(sum(hit)+sum(four_ball)+2.4*sum(tpa)))/(9*sum(tpa))-0.9*sum(tpa))*27/(sum(at_bats)-sum(hit)) as RC27,
CASE
WHEN sum(at_bats)/sum(strike_out) is null THEN 0
WHEN sum(at_bats)/sum(strike_out) is not null THEN sum(at_bats)/sum(strike_out)
END as not_strike_out,
CASE
WHEN sum(at_bats)/sum(homerun) is null THEN 0
WHEN sum(at_bats)/sum(homerun) is not null THEN sum(at_bats)/sum(homerun)
END as avg_homerun,
CASE
WHEN sum(rbi)/sum(at_bats) is null THEN 0
WHEN sum(rbi)/sum(at_bats) is not null THEN sum(rbi)/sum(at_bats)
END as avgRbi,
public calcSABR = (players) => {
for(let i = 0; i < players.length; i++){
players[i].average = players[i].hit/players[i].at_bats;
players[i].slg = (players[i].hit + players[i].twobase*1 + players[i].three_base*2 + players[i].homerun*3 )/players[i].at_bats;
players[i].obp = (players[i].hit + players[i].four_ball)/players[i].tpa;
players[i].ops = players[i].slg + players[i].obp;
const rc27b = players[i].slg * players[i].at_bats + 0.26 * players[i].four_ball - 0.03 * players[i].strike_out;
const rc27a = players[i].slg * players[i].at_bats + players[i].four_ball;
const rc27c = players[i].at_bats + players[i].four_ball;
players[i].rc27 = ((rc27a + 2.4*rc27c)*(rc27b + 3*rc27c)/(9*rc27c))-(0.9 + rc27c);
players[i].not_strike_out = players[i].at_bats/players[i].strike_out;
players[i].avg_homerun = players[i].at_bats/players[i].homerun;
players[i].avgRbi = players[i].rbi/players[i].at_bats;
}
return players;
}
チーム管理者は
みんなのSCORE、キャップ野球情報局はユーザの皆さんのご意見を募集しています。