根据列中的条件选择行

chose rows based on condition from column

我正在尝试执行以下操作

#generate sample data
loc<-rep("Bak",3)
year<-rep(2005,3)
sea<-c("aut","sum","win")
area<-c(170,126,664)
prod<-c(154,170,932)
yld<-c(0.9,1.35,1/41)
dat<-data.frame(loc,year,sea,area,prod,yld)

我想select dat$area 最大的那一行。这意味着第三行应该 selected since

max(dat$area)
[1] 664

但是,我不确定如何索引它。我尝试了以下

dat[,max(dat$area)]

但这给了我一个错误。任何人都可以向我解释如何解决这个问题。

谢谢

有很多方法,这里是一个:

dat[dat$area==max(dat$area),]

基数 R:

dat[dat$area == max(dat$area), ]

Dplyr:

library(dplyr)
filter(dat, area == max(area))
 x<-max(dat$area) ; assign max value to a variable "x"
 subset(dat ,dat$area==x)
  loc year sea area prod        yld
3 Bak 2005 win  664  932 0.02439024