0

データフレームの各列のジニ係数を計算したい2090 x 25。ineq パッケージの Gini 関数と次のコードを使用しています。

gini <- sapply(mydata, function(x) ineq(x,type="Gini")).

これにより、有効に見える結果が生成されますが、次の警告メッセージも生成されます。

警告メッセージ:

1: In n * sum(x) : NAs produced by integer overflow
2: In sum(x * 1:n) : Integer overflow - use sum(as.numeric(.))
3: In n * sum(x) : NAs produced by integer overflow

整数オーバーフローを克服するために、データフレームを行列に変換しました(mymatrix <- as.matrix(mydf))が、結果はすべてゼロまたは NA でした。これは、ineq パッケージにはベクトルが必要であり、行列がベクトルではないためだと思います。

私の質問は次のとおりです。

  • 整数列を数値に変換し、ベクトル クラスを保持するにはどうすればよいですか?
  • 整数オーバーフローの問題を回避する他のオプションはありますか?

ありがとう

練田

4

1 に答える 1