我在使用 ineq() 库中的命令创建新变量时遇到了一点麻烦,该库计算基尼系数。我给 ineq 命令的向量是我感兴趣的列的列表。我想为每一行运行这个命令,然后附加新变量。
当我尝试将其作为循环或使用 ddply(我现在正在学习)时,每行的输出是相同的 Gini 分数(对于整个数据集)。
如何为每个单独的行运行此命令? 提前致谢!
library(ineq)
df <- data.frame( user = 1:5, v1 = c(2,4,6,8,10), v2 = c(1,5,11,5,1), v3 = c(3,1,2,7,9))
for (i in nrow(df)) {
df$gini <- ineq(c(df$v1, df$v2, df$v3))
}
myGini <- ddply(df, .(user), gini=ineq(c(v1, v2, v3)))