2016-09-19 1 views
1

Gini()からDescToolsを使用してジニ係数を計算したいのですが(重み、信頼区間などで "偏った"ジニ係数を簡単に計算できるためです)この関数を "大きな"サンプルで使用するとエラーが発生します。ここで私の側でエラーを生成単純な例である:パッケージのGini関数を使用して整数オーバーフローエラーが発生しました

library("DescTools") 
x1 <- sample(c(1:100000), 50) #Here I create a sample of 50 cases varying from 1 to 100,000 
Gini(x1) #Here I use the Gini function without any parameters, and it returns the Gini coefficient as expected: 
[1] 0.3153713 

x2 <- sample(c(1:100000), 500) #Now, I create a sample of 500 cases varying from 1 to 100,000 
Gini(x2) #And if I compute the Gini coefficient with the same parameters, I get the following error: 
[1] NA 

警告メッセージ: 1:合計で(X * 1:N):整数オーバーフロー - 使用和(as.numeric() ) 2:n * sum(x):整数オーバーフローによって生成されるNAs

私は問題が何であるか把握できませんか? Rバージョン3.3.1(2016-06-21) - Rstudioバージョン0.99.903と「DescTools」バージョン0.99.17の「Bug in Your Hair」を使用しています。
編集:まあ、数値の整数から私の番号を変換する仕事をするようです(私はまだ...とにかく、それを得ることはありません):この記事にいくつかの反射に基づく

x2 <- as.numeric(x2) #Now, Gini() will work... 
+0

警告!=エラー – Gregor

答えて

0

、私は関数DescTools::Gini()をデフォルト(DescTools 0.99.18のように)に数値にキャストするように変更しました。操作は安価であり、失われたパフォーマンスは価値がありません。

set.seed(1984) 
x <- sample(c(1:100000), 500) 
Gini(x) 
# [1] 0.3360882 
関連する問題