1

Gini()fromを使用してジニ係数を計算したいのですがDescTools(重み、信頼区間などを使用して「偏りのない」ジニ係数を簡単に計算できるため)、この関数を「大きな」サンプルで使用するとエラーが発生します。私の側でエラーを生成する簡単な例を次に示します。

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: in sum(x * 1:n) : 整数オーバーフロー - sum(as.numeric(.)) を使用 2: In n * sum(x) : 整数オーバーフローによって生成された NA

何が問題なのかわかりません。私は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... 
4

1 に答える 1

1

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

set.seed(1984)
x <- sample(c(1:100000), 500) 
Gini(x)
# [1] 0.3360882
于 2016-11-06T15:23:27.970 に答える