如何在 R 数据框的其他列中基于键查找值的总和?
如果我们有一列是键,这意味着我们想将该列用作自变量,并找到因变量的统计值,例如总和、平均值、标准差、范围等。这可以通过 with 和 tapply 函数的组合来完成,如下例所示。
考虑以下数据框 -
示例
x1<-sample(c("A","B","C"),20,replace=TRUE) y1<-rpois(20,5) df1<-data.frame(x1,y1) df1
输出
x1 y1 1 C 0 2 A 4 3 C 5 4 C 5 5 A 5 6 C 3 7 B 7 8 B 6 9 C 6 10 C 13 11 C 6 12 C 5 13 C 6 14 A 7 15 B 4 16 C 1 17 C 7 18 B 6 19 B 3 20 B 5
查找 x1 中值的 y1 总和 -
with(df1,tapply(y1,x1,FUN=sum))
A B C 16 31 57
示例
x2<-sample(c("India","Indonesia","UK"),20,replace=TRUE) y2<-rpois(20,10) df2<-data.frame(x2,y2) df2
输出
x2 y2 1 India 11 2 India 8 3 Indonesia 16 4 India 8 5 Indonesia 10 6 UK 16 7 India 16 8 Indonesia 9 9 Indonesia 11 10 India 9 11 UK 7 12 India 14 13 Indonesia 9 14 India 12 15 UK 8 16 Indonesia 10 17 UK 14 18 India 9 19 India 13 20 Indonesia 10
查找 x2 中值的 y2 总和 -
with(df2,tapply(y2,x2,FUN=sum))
India Indonesia UK 100 75 45
广告