0

特定の値を追加して集計したいデータ フレームがあります。6 つのクラスターがあるとします。次に、各クラスターからのデータを、出力データ フレームに入れられる値 x を生成する関数にフィードします。

cluster year      lambda           v            e   x
1        1    1 -0.12160997 -0.31105287 -0.253391178  15
2        1    2 -0.12160997 -1.06313732 -0.300349972  10
3        1    3 -0.12160997 -0.06704185  0.754397069  40
4        2    1 -0.07378295 -0.31105287 -1.331764904   4
5        2    2 -0.07378295 -1.06313732  0.279413039  19
6        2    3 -0.07378295 -0.06704185 -0.004581941  23
7        3    1 -0.02809310 -0.31105287  0.239647063  28
8        3    2 -0.02809310 -1.06313732  1.284568047  38
9        3    3 -0.02809310 -0.06704185 -0.294881283  18
10       4    1  0.33479251 -0.31105287 -0.480496125  15
11       4    2  0.33479251 -1.06313732 -0.380251626  12
12       4    3  0.33479251 -0.06704185 -0.078851036  34
13       5    1  0.27953088 -0.31105287  1.435456851 100
14       5    2  0.27953088 -1.06313732 -0.795435607   0
15       5    3  0.27953088 -0.06704185 -0.166848530   0
16       6    1  0.29409366 -0.31105287  0.126647655  44
17       6    2  0.29409366 -1.06313732  0.162961658  18
18       6    3  0.29409366 -0.06704185 -0.812316265  13

集計するには、3 年すべてにわたってクラスター 1 の x 値を合計し、seroconv.cluster1=sum(data.all[c(1:3),6])クラスターごとに繰り返します。

現在、クラスターの数を変更するたびに、x の追加を手動で変更する必要があります。n.vec <- seq(6, 12, by=2)n.vec を関数に入力して x を取得し、クラスターの数が変化するたびに R に各クラスターの x 値を加算させたいと思います。したがって、6 つのクラスターを実行し、クラスターごとにすべての x を合計します。次に 8 と x を合計します。

4

2 に答える 2

0

各クラスターの合計をxベクトルとして取得するには、次を使用できますtapply

tapply(df$x, df$cluster, sum)
#   1   2   3   4   5   6 
#  65  46  84  61 100  75 

代わりにデータ フレームとして出力する場合は、次を使用できますaggregate

aggregate(x~cluster, sum, data=df)
#   cluster   x
# 1       1  65
# 2       2  46
# 3       3  84
# 4       4  61
# 5       5 100
# 6       6  75
于 2015-06-25T21:37:35.367 に答える