a <- c(1, 2, 0, 3, 7)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个函数来返回最小值的索引,3.它是什么?
Jos*_*ien 96
您正在寻找which.min():
a <- c(1,2,0,3,7,0,0,0)
which.min(a)
# [1] 3
which(a == min(a))
# [1] 3 6 7 8
Run Code Online (Sandbox Code Playgroud)
(从上面可以看出,当几个元素被绑定为最小值时,which.min()只返回第一个元素的索引.如果你想要所有元素的索引匹配最小值,你可以使用第二个构造.)
Das*_*son 15
作为Josh答案的替代品
a <- c(1, 2, 0, 3, 7)
which(a == min(a))
Run Code Online (Sandbox Code Playgroud)
这给每个索引等于最小值.因此,如果我们有多个值匹配最低值
a <- c(1, 2, 0, 3, 7, 0)
which(a == min(a)) # returns both 3 and 6
which.min(a) # returns just 3
Run Code Online (Sandbox Code Playgroud)
编辑:如果您正在寻找的是多少元素等于最小值(正如您在其中一条评论中所暗示的那样),您可以这样做:
a <- c(1, 2, 0, 3, 7, 0)
sum(a == min(a))
Run Code Online (Sandbox Code Playgroud)