nomurabbitのブログ

nomurabbitのブログはITを中心にした技術ブログです。

nomurabbitのブログ

【AWS】LambdaでHR/9求めてみた【C#】

こんにちは!らびです。今回はセイバーメトリクスの指標のひとつHR/9C#のLambdaで求めてみます。

K/9は野球で投手を評価する指標で、本塁打を意味します。

テンプレートの準備

まず、Lambdaのテンプレートを準備します。

.NET Core3.1のテンプレートは、
この記事この記事を参考にしてください。

ソースコード

今回は単純な数値の演算です。
ソースコードポイントは下記の通りです。

public GlbResponseBody GetAction(GlbRequestBody glbRequestBody)
{
    try
    {
        int argHomerun          = int.Parse(glbRequestBody.Homerun);
        double argInningPitched = double.Parse(glbRequestBody.InningPitched);

        double hr9 = 1.0 * argHomerun / argInningPitched * 9;

        GlbResponseBody glbResponseBody = new GlbResponseBody();

        // calc hr9
        glbResponseBody.Hr9 = (hr9).ToString("F1");

        return glbResponseBody;
    }
    catch (System.Exception e)
    {
        throw e;
    }
}

演算に必要なパラメータは

  • 本塁打(homerun)
  • 投球回(inning_pitched)

です。

これらのパラメータをリクエストに入れて渡すと、レスポンスとしてHR/9が返ってきます。

GitHubソースコードを載せているので、よろしければ参考にしてくださいだジョ。

github.com

まとめ

以上でセイバーメトリクスの指標であるHR/9を求めるLambdaをC#で書くことができました。

このブログではこれまでセイバーメトリクスの指標をいくつか扱ってきたので、そろそろその知識を生かして何か作りたいですね!

次回もぜひご覧ください。では!