我觉得这是一个非常简单的事情,我只是没有使用我应该使用的功能。
这是功能的相关部分:
min(DATASET$COLUMNNAME, na.rm = TRUE)
现在,它会报告COLUMNNAME中的正确值 - 该列中的最低值。大。但是,我真正希望它做的是在数据框中查看该结果在NAME列中的条目并打印出来。它根本不应打印最小值,只是打印具有COLUMNAME最小值的行的NAME条目。
最好的方法是以某种方式获取该最小值的行号,并返回DATASET $ NAME [row,]?
答案 0 :(得分:22)
寻找这个可能:
DATASET$NAME[DATASET$COLUMNNAME == min(DATASET$COLUMNNAME)]
也就是说,您从NAME
中选择DATASET
,其中COLUMNAME
具有最小值。
如果您不喜欢重复DATASET
这么多次,使用with
就相当于:
with(DATASET, NAME[COLUMNNAME == min(COLUMNNAME)])
答案 1 :(得分:21)
您正在寻找的功能是which.min
:
> set.seed(123)
> df<-data.frame(name=sample(LETTERS[1:10]),value=sample(10))
> df
name value
1 C 10
2 H 5
3 D 6
4 G 9
5 F 1
6 A 7
7 J 8
8 I 4
9 B 3
10 E 2
> df[which.min(df$value),]
name value
5 F 1
> df$name[which.min(df$value)]
[1] F
Levels: A B C D E F G H I J