Find value corresponding to maximum in other column

9.9k Views Asked by At

I have a data frame similar to as follows:

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

I want to find the value of x when y is at its maximum. I know that I can find the max of y with this:

max(df$y)

But I don't know how to match it, and I think there's probably a better way.

2

There are 2 best solutions below

0
JohnCoene On BEST ANSWER

Using 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

Alternatively to return a vector

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

using base R:

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

Try indexing like this:

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