www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

プロ野球の勝敗データの分析6 - R言語でクロス表(2 x 2)のファイ係数を計算する関数を作成する。整数の桁あふれは as.numeric関数で対応。

 

www.crosshyou.info

 の続きです。

今回は、ファイ係数を計算する関数を作ってみます。

実は、

 

www.crosshyou.info

のときにも関数を作ってみたのですが、何故かエラーになったんです。

そのとき作った関数が

f:id:cross_hyou:20191031185657p:plain

 

これです。

そして、この関数を実行したら、

f:id:cross_hyou:20191031185814p:plain

と「整数の桁あふれにより NA が生成されました」となってしまいました。

その後、試行錯誤してみたらうまく計算できる関数になりましたので、忘れないようにここに記録しておきます。

どうやら計算の過程で整数の桁が大きくなりすぎたようです。なので、データの型をinteger型からnumeric型に変更すればよかったようです。

f:id:cross_hyou:20191031193150p:plain

このように、マトリックスの各要素をas.numeri関数でデータ型をnumeric型に変換してからファイ係数を計算するようにしました。

これで実行すると、

f:id:cross_hyou:20191031193621p:plain

fai2関数で実行した結果も公式で計算した結果も同じ-0.1485559になりました。

整数の桁あふれは、as.numeric関数で対応すればよいのですね。

今回は以上です。