如何在R数据框中找到列总和,即使某些列是分类变量?


要在R数据框中找到列总和,即使某些列是分类变量,我们可以按照以下步骤操作:

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

  • 然后,使用plyr包中的numcolwise函数来查找一些列是分类变量时的列总和。

示例1

创建数据框

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

Open Compiler
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(sum)(df1)

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

  Score Frequency
1 627    81

示例2

创建数据框

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

Open Compiler
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(sum)(df2)

输出

   v1 v2
1 56  147

更新于:2021年11月12日

112次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告