如果R数据框中某些列是分类变量,如何求列的均值?


如果R数据框中某些列是分类变量,要查找列的均值,我们可以按照以下步骤操作:

  • 首先,创建一个数据框。

  • 然后,使用plyr包中的numcolwise函数来查找数值列的均值,即使某些列是分类变量。

示例1

创建数据框

让我们创建一个如下所示的数据框:

Grp<-sample(c("Male","Female"),25,replace=TRUE)
Score<-sample(1:50,25)
Frequency<-sample(1:5,25,replace=TRUE)
df1<-data.frame(Grp,Score,Frequency)
df1

输出

执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上会有所不同):

   Grp    Score Frequency
1  Male    22     2
2  Male    10     2
3  Female  38     4
4  Female  13     2
5  Male    24     5
6  Male    39     2
7  Male    23     5
8  Female  42     3
9  Female  15     4
10 Female  49     4
11 Male    18     2
12 Female  30     5
13 Male    17     2
14 Male     4     3
15 Male    34     2
16 Female   3     5
17 Male    35     2
18 Female  31     3
19 Female  43     5
20 Female   9     4
21 Female  12     4
22 Female   8     4
23 Male    29     2
24 Male    46     3
25 Male    33     2

如果某些列是分类变量,则查找列的均值

使用plyr包中的numcolwise函数查找数据框df1中数值列的均值:

Grp<-sample(c("Male","Female"),25,replace=TRUE)
Score<-sample(1:50,25)
Frequency-<sample(1:5,25,replace=TRUE)
df1<-data.frame(Grp,Score,Frequency)
library(plyr)
numcolwise(mean)(df1)

输出

   Score Frequency
1 25.08  3.24

示例2

创建数据框

让我们创建一个如下所示的数据框:

factor<-sample(LETTERS[1:4],25,replace=TRUE)
v1<-rpois(25,2)
v2<-rpois(25,5)
df2<-data.frame(factor,v1,v2)
df2

输出

执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上会有所不同):

   factor v1 v2
1  C      3  7
2  C      2  5
3  C      2  5
4  A      3  7
5  C      4  8
6  B      0  6
7  C      3  6
8  D      3  4
9  D      2  4
10 A      6  10
11 A      2  4
12 A      2  5
13 B      3  6
14 C      2  7
15 A      2  4
16 C      0  6
17 C      3  7
18 B      1  7
19 C      1  6
20 B      2  3
21 A      1  8
22 C      1  1
23 A      3  7
24 A      4  7
25 B      1  7

如果某些列是分类变量,则查找列的均值

使用plyr包中的numcolwise函数查找数据框df2中数值列的均值:

factor<-sample(LETTERS[1:4],25,replace=TRUE)
v1<-rpois(25,2)
v2<-rpois(25,5)
df2<-data.frame(factor,v1,v2)
library(plyr)
numcolwise(mean)(df2)

输出

    v1  v2
1 2.24 5.88

更新于:2021年11月8日

浏览量:104

启动您的职业生涯

完成课程获得认证

开始学习
广告