根据列中的条件选择行
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
我正在尝试执行以下操作
#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