如何基于代表R数据帧中因子的其他列值找到列的列均值?

如果我们有一个代表因子的列,那么我们可能想在其他列中找到因子水平的平均值。这有助于比较因子水平。在R中,我们可以通过使用聚合函数找到此类数据的均值。查看以下示例,了解如何完成此操作。

例1

请看以下数据帧:

> x1<-sample(c(LETTERS[1:4]),20,replace=TRUE)
> y1<-rnorm(20,5,1)
> df1<-data.frame(x1,y1)
> df1

输出结果

  x1   y1
1 D 5.801197
2 B 3.432060
3 B 6.154168
4 A 5.466655
5 D 5.171689
6 C 5.175170
7 B 5.353469
8 D 4.840470
9 C 4.158980
10 B 4.711343
11 D 4.348326
12 A 5.933382
13 A 3.484782
14 A 2.004760
15 C 4.963307
16 D 4.728794
17 B 3.606417
18 B 6.234446
19 C 4.625489
20 B 6.569928

根据x1中的值找到y1的平均值:

示例

> aggregate(.~x1,data=df1,mean)

输出结果

  x1   y1
1 A 4.222395
2 B 5.151690
3 C 4.730736
4 D 4.978095

例2

> x2<-sample(0:1,20,replace=TRUE)
> y2<-rpois(20,5)
> df2<-data.frame(x2,y2)
> df2

输出结果

 x2 y2
1 1 6
2 0 5
3 1 3
4 0 3
5 1 4
6 0 7
7 0 5
8 0 3
9 0 5
10 0 4
11 0 4
12 0 7
13 0 4
14 0 6
15 0 2
16 1 7
17 0 9
18 1 2
19 0 6
20 0 5

根据x2中的值找到y2的平均值:

示例

> aggregate(.~x2,data=df2,mean)

输出结果

 x2 y2
1 0 5.0
2 1 4.4