0

6 つの異なる変数の観測値とそれぞれのサンプルの重みを含むデータ フレームがあります。ddplyを使用しsummarizeて新しいデータ フレームを作成しようとしています。このデータ フレームでは、6 つの変数のうちの 1 つが最初の列になり、他の変数は他の変数の加重合計になります。

たとえば、私のデータ フレームは次のようになります。

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
.....

Location ごとに値を 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)
                ...
                )

これを行うためのより簡単な方法はありますか? この種のファイラーを作成する良い方法はありますか?

どうもありがとう!!

4

1 に答える 1