【AWS】LambdaでOPS求めてみた【C#】
こんにちは!nomurabbitです。
今回はOPSをC#のLambdaで求めてみます。
ソースコード
今回は単純な数値の演算です。
ソースコードのポイントは下記の通りです。
public GlbResponseBody GetAction(GlbRequestBody glbRequestBody) { try { int argAtBat = int.Parse(glbRequestBody.AtBat); int argSacrificeFly = int.Parse(glbRequestBody.SacrificeFly); int argWalks = int.Parse(glbRequestBody.Walks); int argDeadBall = int.Parse(glbRequestBody.DeadBall); int argSingle = int.Parse(glbRequestBody.Single); int argDouble = int.Parse(glbRequestBody.Double); int argTriple = int.Parse(glbRequestBody.Triple); int argHomeRun = int.Parse(glbRequestBody.HomeRun); int hits = argSingle + argDouble + argTriple + argHomeRun; int totalBases = argSingle * 1 + argDouble * 2 + argTriple * 3 + argHomeRun * 4; double obp = 1.0 * (hits + argWalks + argDeadBall) / (argAtBat + argWalks + argDeadBall + argSacrificeFly); double slg = 1.0 * totalBases / argAtBat; GlbResponseBody glbResponseBody = new GlbResponseBody(); // calc ops glbResponseBody.Ops = (obp + slg).ToString("F3"); return glbResponseBody; } catch (System.Exception e) { throw e; } }
GitHubにソースコードを載せていますので、
よろしければ参考にしてください。
演算に必要なパラメータは
- 打席(at_bat)
- 犠飛(sacrifice_fly)
- 四球(walks)
- 死球(dead_ball)
- 単打(single)
- 二塁打(double)
- 三塁打(triple)
- 本塁打(home_run)
です。
リクエストに入れて渡すと、
レスポンスとしてOPSが返ってきます。
以上でセイバーメトリクスの指標である
OPSを求めるLambdaをC#で書くことができました。
よかったら試してみてください。
では!