データフレームの各列のジニ係数を計算したい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 パッケージにはベクトルが必要であり、行列がベクトルではないためだと思います。
私の質問は次のとおりです。
- 整数列を数値に変換し、ベクトル クラスを保持するにはどうすればよいですか?
- 整数オーバーフローの問題を回避する他のオプションはありますか?
ありがとう
練田