如何基于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