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:在 sum(x * 1:n) 中:整数溢出 - 使用 sum(as.numeric(.)) 2:在 n * sum(x) 中:整数溢出产生的 NA

我不知道是什么问题,有什么想法吗?我正在使用 R 版本 3.3.1 (2016-06-21)——“你头发上的虫子”和 RStudio 版本 0.99.903 和“DescTools”版本 0.99.17。
编辑:哦,好吧,将我的数字从整数转换为数字似乎可以完成这项工作(但我仍然不明白,无论如何......):

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 回答