在COLUMN中查找具有最低值的行,返回行COLUMN

时间:2013-10-11 20:46:48

标签: r

我觉得这是一个非常简单的事情,我只是没有使用我应该使用的功能。

这是功能的相关部分:

min(DATASET$COLUMNNAME, na.rm = TRUE)

现在,它会报告COLUMNNAME中的正确值 - 该列中的最低值。大。但是,我真正希望它做的是在数据框中查看该结果在NAME列中的条目并打印出来。它根本不应打印最小值,只是打印具有COLUMNAME最小值的行的NAME条目。

最好的方法是以某种方式获取该最小值的行号,并返回DATASET $ NAME [row,]?

2 个答案:

答案 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