如何通过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 response1 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 DP1 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