如何在列表中找到最大值的位置?

3

我很新使用R,所以提前道歉,如果我问了一些非常明显的问题或者使用了错误的术语。我希望你仍然能够帮助我。

我有一个值列表,我想找到不仅是最大值(即列表中的最高值),而且还要找出这个最大值所在的位置/数据点。

例如,这是名为c_01的列表:

[1,] 3
[2,] 5
[3,] 9
[4,] 4
[5,] 8
[6,] 7
[7,] 9
[8,] 7
[9,] 4
[10,] 3

我已经尝试使用该代码

max(c_01$acf)

但输出始终为

[1] 9

我希望能得到这样的输出,大致告诉我最大值(9)可以在[3,]处找到。这是否可能?

提前感谢你!

2个回答

1
我们可以使用:


paste0("Max is: ", do.call(max,c_01), " at index: ",which.max(c_01))
[1] "Max is: 9 at index: 3"

或者:

c(do.call(max,c_01),
   paste("index: ",which(my_list==do.call(max,c_01),arr.ind = T)))
[1] "9"         "index:  3" "index:  7"

1

max()函数可以为我们做什么:返回输入值的(常规或并行)最大值和最小值。

你想要做的是在数据框中找到最大值。你应该尝试使用which.max()函数。即:

which.max(c_01$acf)

结果变成了

[1] 3

注意:which.max() 只能确定数值向量(或逻辑向量)的最小值或最大值的位置,即索引。您可以尝试以下语法来定位所有最大值。
which(c_01$acf == max(c_01$acf))

结果将是

[1] 3 7


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接