R:which.min似乎在我的数据框中不起作用

时间:2013-12-11 23:56:07

标签: r which

对这个新手问题我很抱歉。 我有一个像

这样的数据框
l_tab$dis2_num$perc
  Var1        dis       pol        dif
1    1 0.79867550 0.2198391 0.57883635
2    2 0.14569536 0.1983914 0.05269606
3    3 0.05562914 0.5817694 0.52614030

我想在哪里找到dif的最小值。 我试过这个:

> min(l_tab$dis2_num$perc["dif"])
>[1] 0.05269606

这是正确的,但我想恢复行(在这种情况下为2)

正在搜索这些内容,我试试这个:

Sorting and finding values in other data frames

推荐函数which.min()。

当我尝试将此应用于我的数据时出现问题

> which.min(l_tab$dis2_num$perc["dif"])
Erreur dans which.min(l_tab$dis2_num$perc["dif"]) : 
  the objet (list) can't be converted to type 'double'

> typeof(l_tab$dis2_num$perc)
[1] "list"

我不明白为什么我的数据框已成为列表。

我也试过这个

> r = as.data.frame(r)
> r

  Var1        dis       pol        dif
1    1 0.79867550 0.2198391 0.57883635
2    2 0.14569536 0.1983914 0.05269606
3    3 0.05562914 0.5817694 0.52614030

> typeof(r)
[1] "list"

没有任何结果......

建议?

1 个答案:

答案 0 :(得分:5)

data.frame是一个列表,[返回一个子列表。相反,要提取列表项(向量),您可以执行以下操作:

 which.min(l_tab$dis2_num$perc[["dif"]])

 which.min(l_tab$dis2_num$perc$dif)