如何在 R 中按两个因素列求和?
要按两个因素列求和,可以使用 aggregate 函数。当我们有用于两个因素的频率/计数数据时,这通常是必需的。例如,如果我们有一个名为 df 的数据框,其中包含两个因素列,例如 f1 和 f2,以及一个数字列,例如 Count,那么可以使用命令 aggregate(Count~f1+f2,data=df,sum) 根据 f1 和 f2 计算 Count 的和。
示例
考虑以下数据框−
x1<-sample(LETTERS[1:4],20,replace=TRUE) x2<-sample(letters[1:2],20,replace=TRUE) freq<-rpois(20,5) df1<-data.frame(x1,x2,freq) df1
输出
x1 x2 freq 1 D b 4 2 C b 6 3 C b 7 4 A b 4 5 C b 4 6 C a 6 7 C b 2 8 C a 7 9 D b 4 10 D b 7 11 B a 3 12 B a 6 13 A a 5 14 B b 5 15 C a 2 16 B a 5 17 A b 6 18 B a 8 19 C a 2 20 D a 5
基于 x1 和 x2 的组合查找频率的和 −
示例
aggregate(freq~x1+x2,data=df1,sum)
输出
x1 x2 freq 1 A a 5 2 B a 22 3 C a 17 4 D a 5 5 A b 10 6 B b 5 7 C b 19 8 D b 15
示例
y1<-sample(c("hot","cold"),20,replace=TRUE)
y2<-sample(c("Asia","America","Africa","Europe"),20,replace=TRUE)
count<-sample(1:10,20,replace=TRUE)
df2<-data.frame(y1,y2,count)
df2输出
y1 y2 count 1 hot Africa 8 2 cold America 8 3 hot America 4 4 hot Africa 5 5 hot America 3 6 hot Europe 9 7 cold Asia 10 8 hot America 4 9 hot America 6 10 cold Africa 5 11 cold America 5 12 cold America 10 13 cold Africa 3 14 cold America 5 15 hot Asia 9 16 cold Asia 4 17 cold America 6 18 cold Europe 4 19 cold Africa 9 20 hot Africa 8
基于 y1 和 y2 的组合查找计数的和 −
示例
aggregate(count~y1+y2,data=df2,sum)
输出
y1 y2 count 1 cold Africa 17 2 hot Africa 21 3 cold America 34 4 hot America 17 5 cold Asia 14 6 hot Asia 9 7 cold Europe 4 8 hot Europe 9
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP