按R中的值和组对列求和

按R中的值和组对列求和,r,sum,R,Sum,我有这样一个数据帧: data <- read.table(text="group; yr1; yr2; val a; 1945; 1946; 20 a; 1945; 1946; 50 a; 1947; 1948; 40 b; 1926; 1927; 45 b; 1927; 1928; -10 b; 1927; 1928;

我有这样一个数据帧:

data <- read.table(text="group;  yr1;   yr2;    val
  a;        1945;   1946;   20
  a;        1945;   1946;   50
  a;        1947;   1948;   40
  b;        1926;   1927;   45
  b;        1927;   1928;   -10
  b;        1927;   1928;   -15 ", sep=";", header=T, stringsAsFactors = FALSE)

对于较大的数据集,请尝试
data.table

library(data.table)
setDT(data)[, list(val=sum(val)), by=list(group, yr1, yr2)]
#    group  yr1  yr2 val
#1:     a 1945 1946  70
#2:     a 1947 1948  40
#3:     b 1926 1927  45
#4:     b 1927 1928 -25
在R基中:

aggregate(val ~ group + yr1 + yr2, data, sum)
#  group  yr1  yr2 val
#1     b 1926 1927  45
#2     b 1927 1928 -25
#3     a 1945 1946  70
#4     a 1947 1948  40

查看
?聚合

aggregate(val ~ group + yr1 + yr2, data, sum)
#  group  yr1  yr2 val
#1     b 1926 1927  45
#2     b 1927 1928 -25
#3     a 1945 1946  70
#4     a 1947 1948  40