我有一个类似于以下内容的数据框:
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)
但是我不知道如何匹配它,我认为可能有更好的方法。
答案 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)]