如何在R中找到两个因子列的总和?

要找到两个因子列的总和,我们可以使用聚合函数。当我们有两个因素的频率/计数数据时,这通常是必需的。例如,如果我们有一个名为 df 的数据框,其中包含两个因子列,例如 f1 和 f2,还有一个数值列称为 Count,那么可以使用命令aggregate(Count~f1+f2,数据=df,总和)。

示例

考虑以下数据框 -

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

以上是 如何在R中找到两个因子列的总和? 的全部内容, 来源链接: utcz.com/z/335593.html

回到顶部