按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