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

Find value corresponding to maximum in other column

我有一个类似如下的数据框:

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

我想求 xy 最大值时的值。我知道我可以找到 y 的最大值:

max(df$y)

但是我不知道怎么搭配,我想可能有更好的办法。

尝试像这样建立索引:

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

使用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

替代return一个向量

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

使用基数 R:

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