如果R数据框中某些列是分类列,如何查找列最大值?


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

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

  • 然后,使用plyr包中的numcolwise函数来查找某些列是分类列时列的最大值。

示例1

创建数据框

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

Group<-sample(c("I","II","III","IV"),25,replace=TRUE)
Num1<-sample(1:50,25)
Num2<-sample(1:50,25)
df1<-data.frame(Group,Num1,Num2)
df1

输出

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

   Group Num1 Num2
1  III   43   36
2   I    5    22
3  IV    3    23
4  II   40    40
5  IV   47    33
6  II   12     3
7  II   31    21
8  IV   34    20
9  I    41    44
10 II    7     8
11 II   35    45
12 III  50    25
13 III  19    16
14 III  11    34
15 I     1    28
16 III  21    31
17 IV    9    47
18 III  15     9
19 I    23    11
20 III  45    24
21 I    37    26
22 I    13    32
23 I    27    30
24 II    2    10
25 I    48    12

如果某些列是分类列,则查找列最大值

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

Group<-sample(c("I","II","III","IV"),25,replace=TRUE)
Num1<-sample(1:50,25)
Num2<-sample(1:50,25)
df1<-data.frame(Group,Num1,Num2)
library(plyr)
numcolwise(max)(df1)

输出

  Num1 Num2
1  50   47

示例2

创建数据框

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

Categories<-sample(c("First","Second","Third"),25,replace=TRUE)
Score<-sample(1:10,25,replace=TRUE)
Price<-sample(1:5,25,replace=TRUE)
df2<-data.frame(Categories,Score,Price)
df2

输出

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

   Categories Score Price
1  Third      6      1
2  Second     7      1
3  Second     5      5
4  First      8      3
5  Third      5      2
6  First      9      2
7  Third      6      5
8  First      9      4
9  First      4      1
10 Second     4      5
11 Second     2      1
12 First      9      3
13 Second     4      3
14 First      4      2
15 Third      5      4
16 Third      2      5
17 First      1      4
18 First      2      1
19 Third      2      5
20 Second     1      1
21 Third      7      1
22 Second     4      2
23 First     10      1
24 Third      6      4
25 First      8      4

如果某些列是分类列,则查找列最大值

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

Categories<-sample(c("First","Second","Third"),25,replace=TRUE)
Score<-sample(1:10,25,replace=TRUE)
Price<-sample(1:5,25,replace=TRUE)
df2<-data.frame(Categories,Score,Price)
library(plyr)
numcolwise(max)(df2)

输出

  Score Price
1  10    5

更新于: 2021年11月9日

138 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告