パッケージreldistからgini()関数を削除してRを使用して、いくつかのプロットのジニ係数を計算したいと思います。gini関数への入力として2つの列を使用する必要があるデータフレームがあります。
> head(merged[,c(1,17,29)])
idp c13 w
1 19 126 14.14
2 19 146 14.14
3 19 76 39.29
4 19 74 39.29
5 19 86 39.29
6 19 93 39.29
gini関数は、計算に最初の要素(ここではc13)を使用し、2番目の要素はc13の各要素に対応する重み(ここではw)です。
したがって、列c13とwを次のように使用する必要があります。
gini(merged$c13,merged$w)
[1] 0.2959369
問題は、プロット(idp)ごとにこれを実行したいということです。idpには4000の異なる値があり、それぞれに他の2つの列の値が数十あります。
関数tapply()を使用してこれを実行できると思いました。しかし、tapplyを使用して関数に2つの列を入れることはできません。
tapply(list(merged$c13,merged$w), merged$idp, gini)
ご存知のように、これは機能しません。したがって、結果として取得したいのは、次のようなデータフレームです。
idp Gini
1 19 0.12
2 21 0.45
3 35 0.65
4 65 0.23
これを行う方法について何か考えがありますか?多分plyrパッケージ?ご協力ありがとうございました!