我想使用Gini()
中的DescTools
来计算基尼系数(因为它提供了一种简单的方法来计算"无偏和#34;基尼系数与权重,置信区间等),但是当我使用这个函数" big"样本。这是一个在我身边产生错误的简单例子:
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):整数溢出 - 使用sum(as.numeric(。)) 2:在n * sum(x)中:由整数溢出产生的NAs
我无法确定问题是什么,任何想法? 我正在使用R版本3.3.1(2016-06-21) - &#34;你头发中的错误&#34;使用RStudio版本0.99.903和'DescTools'版本0.99.17 编辑:哦,好吧,将我的数字从整数转换为数字似乎可以完成工作(但我仍然没有得到它,无论如何......):
x2 <- as.numeric(x2) #Now, Gini() will work...
答案 0 :(得分:1)
根据对这篇文章的一些反思,我更改了函数DescTools::Gini()
,默认情况下将整数转换为数字(如DescTools 0.99.18)。操作便宜,失去的性能不值得......
set.seed(1984)
x <- sample(c(1:100000), 500)
Gini(x)
# [1] 0.3360882