如何在 R 中求出两个因子列之和?
r programmingserver side programmingprogramming
要求出两个因子列之和,我们可以使用聚合函数。这在我们有两个因子的频率/计数数据时最需要。例如,如果我们有一个名为 df 的数据框,其中包含两个因子列(即 f1 和 f2)和一个数值列(即 Count),则可以使用命令聚合(Count~f1+f2,data=df,sum)计算 Count 与 f1 和 f2 之和。
示例
考虑下面的数据框 −
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