如何通过R中的因子水平找到列平均值?

要按因子级别查找列均值,我们可以在使用 group_by 函数创建因子级别组后使用汇总函数和均值函数。

例如,如果我们有一个名为 df 的数据框,其中包含一个因子列 F 和一个数值列 Num,那么我们可以使用以下给定的命令按因子级别找到 Num 列的平均值 -

df%>%group_by(F)%>%summarise(Average=mean(Num))

示例 1

以下代码段创建了一个示例数据框 -

grp<-sample(LETTERS[1:4],20,replace=TRUE)

response<-rpois(20,5)

df1<-data.frame(grp,response)

df1

创建以下数据框 -

 grp response

1  A  5

2  B  3

3  A  4

4  D  6

5  A  7

6  A  5

7  B  2

8  A  3

9  A  7

10 C  1

11 B  9

12 B  5

13 D  3

14 B  5

15 D  1

16 A  9

17 D  9

18 C  7

19 D  6

20 B  3

要加载 dplyr 包并通过 grp 列中的因子水平找到响应的平均值,请将以下代码添加到上述代码段中 -

library(dplyr)

df1%>%group_by(grp)%>%summarise(Average=mean(response))

`summarise()` ungrouping output (override with `.groups` argument)

# A tibble: 4 x 2

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

 grp   Average

 <chr> <dbl>

1  A   5.71

2  B   4.5

3  C     4

4  D     5

示例 2

以下代码段创建了一个示例数据框 -

Class<-sample(c("I","II","III"),20,replace=TRUE)

DP<-sample(1:10,20,replace=TRUE)

df2<-data.frame(Class,DP)

df2

创建以下数据框 -

 Class  DP

1   II  10

2    I  10

3    I   7

4   II   4

5   II   1

6   II   2

7  III   8

8    I   6

9   II   4

10   I   4

11 III   4

12   I   4

13   I  10

14 III   8

15 III   3

16  II   3

17 III   5

18   I   3

19 III   9

20   I   6

要通过 Class 列中的因子级别找到 DP 的平均值,请将以下代码添加到上述代码段中 -

df2%>%group_by(Class)%>%summarise(Average=mean(DP))

`summarise()` ungrouping output (override with `.groups` argument)

# A tibble: 3 x 2

输出

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

 Class  Average

 <chr>  <dbl>

1   I   6.25

2  II      4

3 III   6.17

以上是 如何通过R中的因子水平找到列平均值? 的全部内容, 来源链接: utcz.com/z/341304.html

回到顶部