我想计算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包需要一个向量而矩阵不是一个向量。
我的问题是:
由于
Nerida
答案 0 :(得分:1)
如果没有更多信息,我猜你可能更喜欢
sapply(1:25, function(x) ineq(as.numeric(mydata[,x],type='Gini')) )
编辑:正如@James和@Roman指出的那样,sapply
将依次抓取数据框的每个元素,所以
sapply(mydata,function(x) ineq(as.numeric(x),type='Gini') )
应该产生相同的结果。