【发布时间】:2016-09-16 05:13:33
【问题描述】:
我正在尝试执行以下操作
#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)
我想选择dat$area 最大的那一行。这意味着应该选择第三行,因为
max(dat$area)
[1] 664
但是,我不确定如何索引它。我尝试了以下
dat[,max(dat$area)]
但这给了我一个错误。谁能解释一下如何解决这个问题。
谢谢
【问题讨论】:
-
max没有给出位置。请改用which.max。而且您将条件放置在错误的位置。试试dat[which.max(dat$area), ]。或者你可以做dat[dat$area == max(dat$area), ]。取决于您是想要 all 行还是匹配条件的第一行。您还可以使用tail(dat[order(dat$area), ], 1)从有序数据中提取最后一个值 -
谢谢。这是非常有用的。
-
或
dat[order(-dat$area), ][1, ]