如何在R数据框中根据另一列选择包含最大值的行?
为了在R数据框中根据另一列选择包含最大值的行,我们可以按照以下步骤操作:
- 首先,创建一个包含一个数值列和一个分类列的数据框。
- 然后,使用tapply函数和max函数根据另一列查找数值列中包含最大值的行。
示例1
创建数据框
让我们创建一个如下所示的数据框:
x<-rnorm(20) factor1<-sample(LETTERS[1:4],20,replace=TRUE) df1<-data.frame(x,factor1) df1
执行上述脚本后,将生成以下输出(由于随机化,此输出会在您的系统上有所不同):
x factor1 1 -1.21231516 A 2 -0.01576519 B 3 0.59032593 D 4 -0.41583339 C 5 -0.38508102 A 6 -0.61177209 C 7 -0.52961795 C 8 0.30561837 A 9 -0.58067776 A 10 0.62246173 C 11 -0.58479709 C 12 0.09817433 B 13 1.11240042 C 14 0.29007306 B 15 -0.66345792 B 16 -1.80789902 A 17 0.33419804 C 18 -0.15665767 A 19 1.56775923 C 20 1.49345799 B
查找基于另一列包含最大值的行
使用tapply函数根据df1中的factor1列查找x列中行的最大值:
x<-rnorm(20) factor1<-sample(LETTERS[1:4],20,replace=TRUE) df1<-data.frame(x,factor1) tapply(df1$x,df1$factor1,max)
输出
A B C D 0.3056184 1.4934580 1.5677592 0.5903259
示例2
创建数据框
让我们创建一个如下所示的数据框:
y<-sample(1:50,20) factor2<-sample(c("Low","Medium","High"),20,replace=TRUE) df2<-data.frame(y,factor2) df2
执行上述脚本后,将生成以下输出(由于随机化,此输出会在您的系统上有所不同):
y factor2 1 45 Low 2 2 Medium 3 5 High 4 33 Low 5 28 High 6 37 Medium 7 7 High 8 21 High 9 48 Low 10 18 High 11 15 High 12 38 High 13 20 Medium 14 4 Low 15 22 Medium 16 34 Low 17 32 Low 18 29 Low 19 24 High 20 17 Medium
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
查找基于另一列包含最大值的行
使用tapply函数根据df2中的factor2列查找y列中行的最大值:
tapply(df2$y,df2$factor2,max)
输出
High Low Medium 38 48 37
广告