在其他列中查找与最大值对应的值

时间:2018-11-05 13:50:11

标签: r max match correspondence

我有一个类似于以下内容的数据框:

x <- c(1, 2, 3, 4, 5)
y <- c(1, 2, 3, 2, 1)
df <- data.frame(x, y)

我想在x达到最大值时找到y的值。我知道可以通过以下方式找到y的最大值:

max(df$y)

但是我不知道如何匹配它,我认为可能有更好的方法。

2 个答案:

答案 0 :(得分:2)

使用dplyr

# install.packages(dplyr)
library(dplyr)

df %>% 
    filter(x == max(y)) %>% # filter the data.frame to keep row where x is maximum
    select(x) # select column y

或者返回向量

df %>% 
    filter(x == max(y)) %>% 
    pull(x) # pull the variable y

使用基数R:

df[df$x == max(df$y), "x"]

答案 1 :(得分:0)

尝试像这样建立索引:

df$x[df$x == max(y)]