所以我意识到标题不是最好的,但我不确定如何说出来。我的问题看起来应该很简单,但我非常喜欢R新手,所以我不知道怎么做。
我们说我有一个数据框,例如:
X Y
A 1
B 2
C 3
D 4
E 5
如何返回最小Y的相应X值?在这种情况下,我希望它返回A,因为Y列中的最小值是1.
我甚至不确定从哪里开始,所以原谅我缺少示例代码,因为我没有。
答案 0 :(得分:4)
使用dplyr
library(dplyr)
filter(df, Y == min(Y))
仅适用于X值:
filter(df, Y == min(Y)) %>% select(X)
或者:
filter(df, Y == min(Y)) %>% .$X
答案 1 :(得分:2)
您可以尝试which.min
with(df, X[which.min(Y)])
#[1] "A"
或者假设您duplicate
中的Y
最小值,您可以使用==
。例如
df$Y[3] <- 1
with(df,X[ Y == min(Y)])
#[1] "A" "C"
which.min
仅返回first
最小值
with(df, X[which.min(Y)])
#[1] "A"
df <- structure(list(X = c("A", "B", "C", "D", "E"), Y = 1:5), .Names =
c("X", "Y"), class = "data.frame", row.names = c(NA, -5L))