次のようなサンプルデータフレームがありsample.data
ます。
x y z
1 0 1
1 0 1
1 0 1
1 0 1
1 0 2
1 0 2
1 0 2
1 0 2
1 0 2
0 1 2
z のカテゴリごとに x と y の最大値と合計値を見つける必要があります (z は 1,2,...600 のようなものです)。これには plyr の ddply を使用します。
library(plyr)
z.group<-ddply (sample.data,.(z),summarize,max_x=max(x), max_y=max(y), sum_x=sum(x), sum_y=sum(y))
z.group
z max_x max_y sum_x sum_y
1 1 0 4 0
2 1 1 5 1
次に、これらを関連する行の下のsum_x, sum_y, max_x, and max_y
列として挿入する必要があります。sample.data
たとえば、if max_x is 1 for z=1, then I insert max_x is 1 for all rows with z=1
. 期待される出力は
x y z max_x max_y sum_x sum_y
1 0 1 1 0 4 0
1 0 1 1 0 4 0
1 0 1 1 0 4 0
1 0 1 1 0 4 0
1 0 2 1 1 5 1
1 0 2 1 1 5 1
1 0 2 1 1 5 1
1 0 2 1 1 5 1
1 0 2 1 1 5 1
0 1 2 1 1 5 1
どうすれば期待される出力を得ることができるのだろうか?