2017-07-04 5 views
0

私のデータベースの各行のGiniインデックスを計算しようとしています。各行は顧客であり、各列は毎月のセッションです。ですから、私がする必要があるのは、Giniインデックスを列ごとに12カ月間にわたって各顧客に追加することです。 See example attachedGiniのインデックスR

私はオンラインいくつかの例を発見し、これをした:

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) 

しかし、私は次のエラーを取得する:

Error in match.fun(FUN) : object 'gini' not found

私は不等式とReldist(およびライブラリ)の両方がインストールされているので、Iなぜこれが動作していないのか分かりません。あなたはそれぞれの行はこれを試すためで、それをしたい場合は

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") 

:コラムでごジニのCOEFFを持っているために、これを行うには

+0

あなたのコードから私はエラーを再現できませんので、インストールしなかったかまたはパッケージを適切にロードしますか? – agenis

答えて

0

てみ

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") 

Finalyあなたはの終わりにあなたのcoeffsを追加あなたのdata_frameをマージしてみましょう:

your_data_final = merge(your_data,data_coeff, by = "customer") 
関連する問題