如何在R语言中获取非首行的列最大值对应行的Year值
解决R语言获取X列最大值对应Year的问题
首先补全你的数据框定义(原代码缺闭合括号):
data <- data.frame(Item = c(1, 2, 3), Year = c(2001, 2002, 2003), X = c(3, 2, 45))
你用rownames()得到行号3是正常的——rownames()返回的是数据框的行名称,默认就是从1开始的序列,和Year列的数值没有关联,自然拿不到2003。
下面是两种直接有效的解决方法:
方法一:用which.max()定位行位置
data$Year[which.max(data$X)]
which.max(data$X)会返回X列最大值所在的行索引(这里是3),再用这个索引提取Year列对应的值,直接得到2003。
方法二:逻辑筛选匹配最大值
data$Year[data$X == max(data$X)]
先计算X列的最大值,再筛选出X等于该值的所有行,提取对应的Year。如果后续数据中X列有多个最大值,这种方法会返回所有匹配的Year值。
内容的提问来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

