【问题标题】:Gini Index in RR中的基尼指数
【发布时间】:2017-07-04 14:03:21
【问题描述】:

我正在尝试为我的数据库的每一行计算基尼指数。每行是一个客户,每列是每月一次。所以我需要做的是在 12 个月内为每个客户逐行添加一个带有 Gini 索引的列。 See example attached

我在网上找到了一些例子并做了这个:

Gini_index <- apply(DT_file[,c('sessions_201607_pct','sessions_201608_pct', 'sessions_201609_pct','sessions_201610_pct','sessions_201611_pct','sessions_201612_pct','sessions_201701_pct','sessions_201702_pct','sessions_201703_pct','sessions_201704_pct','sessions_201705_pct','sessions_201706_pct')], 1, gini)

但是,我收到以下错误:

match.fun(FUN) 中的错误:找不到对象“gini”

我已经安装了 Ineq 和 Reldist(以及库),所以我不知道为什么这不起作用。

【问题讨论】:

  • 从您的代码中我无法重现该错误,因此您没有正确安装或加载软件包?

标签: r gini


【解决方案1】:

尝试这样做以按列计算您的基尼系数:

library(ineq)

coeff= NULL
for (i in colnames(your_data[,-1])){
  coeff= c(coeff,round(ineq(your_data[,i],type = 'Gini'),4))
}

data_coeff = data.frame(cbind(coeff,colnames(your_data[,-1])))
colnames(data_coeff) = c("Coeff","Colnames")

如果你想为每一行尝试这个:

your_new_data = as.data.frame(t(your_data[,-1]), row.names =T)

colnames(your_new_data) = your_data[,1]

ind = NULL
for (i in colnames(your_new_data)){
  ind = c(ind,round(ineq(your_new_data[,i],type = 'Gini'),4))
}

data_coeff= data.frame(cbind(ind,colnames(your_new_data)))
colnames(data_coeff) = c("Coeff","customer")

最后你在 data_frame 的末尾添加你的 coeffs 并合并:

your_data_final = merge(your_data,data_coeff, by = "customer" )

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2016-02-08
    • 2018-03-21
    • 1970-01-01
    • 2019-07-08
    • 2019-05-10
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多