折叠数据框,添加因子值

Ste*_*ner 1 r

可能重复:
聚合R总和

我有一个如下所示的数据框:

  sample value
1      a     1
2      a     2
3      b     3
4      b     4
5      b     5
6      c     6
Run Code Online (Sandbox Code Playgroud)

我需要在数据帧上折叠sample(可能是一个字符向量或一个因子),添加所有values,所以我得到的结果数据框如下所示:

  sample sum
1      a   3
2      b  12
3      c   6
Run Code Online (Sandbox Code Playgroud)

现在是周一早上,我能想到的只是写一个复杂的for循环.我如何使用apply,plyr等来对此进行矢量化?

Rol*_*and 7

如果您不想加载包:

df <- read.table(text="  sample value
1      a     1
2      a     2
3      b     3
4      b     4
5      b     5
6      c     6",header=TRUE)

aggregate(df$value,by=list(sample=df$sample),sum)

  sample  x
1      a  3
2      b 12
3      c  6
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢公式语法:

aggregate(value ~ sample, df, sum)

  sample value
1      a     3
2      b    12
3      c     6
Run Code Online (Sandbox Code Playgroud)