私は6つの異なる変数の観測値とそれぞれのサンプル重みを持つデータフレームを持っています。私はddply
とsummarize
を使用して新しいデータフレームを作成しようとしています.6つの変数の1つが最初の列になり、残りが他の列の加重合計になります。R(ddply、summarize、sum)での条件付き加算
例えば、私のデータフレームは、このようなものになります。
Location A B C D SampleWeight
x1 2 1 4 3 .1
x1 4 3 4 2 .3
x2 2 3 7 3 .7
x2 4 3 4 3 .8
.....
を私が場所ごとに値を1つだけ持つデータフレームを作成したい、その後、各列に各条件のためSampleWeightsを合計します全体として。それは次のようになります。
Location Total A2 A4 B1 B3 C4 C7 ...
x1 0.4 .1 .3 .1 .3 .4 0.0
x2 1.5 .7 .8 0.0 1.5 .8 .7
これは、私はそれについて移動しようとしていた、と私は仕事に合計列を得ている方法ですが、私は合計のみになりますことをフィルタがこのような作り方を確認していません他の列の特定の値を持つ行に表示されます。私が試してみましたいくつかのものが含まれている:
newdf <- ddply(mydf, ~ `Location`, summarize,
total = sum(`SampleWeight`),
A2 = sum(within(`SampleWeight`, A == "2")),
A4 = sum(filter(mydf$SampleWeight, A == "4")),
B1 = sum((mydf$B=="1")$sample_weight)
...
)
がこれを行うことについて移動する簡単な方法はありますか?この種のファイラーを作る良い方法はありますか?
ありがとうございます!