Where is the Min() or Max() or first TRUE or FALSE ?
Determines the location, i.e., index of the (first) minimum or maximum of a numeric (or logical) vector.
NaNvalues are discarded.an
integeror on 64-bit platforms, if
length(x) =: n$>= 2^31$ an integer valued
doubleof length 1 or 0 (iff
xhas no non-
NAs), giving the index of the first minimum or maximum respectively of
x.If this extremum is unique (or empty), the results are the same as (but more efficient than)
which(x == min(x, na.rm = TRUE))or
which(x == max(x, na.rm = TRUE))respectively.
x with both
the index of the first
TRUE, respectively, as
FALSE < TRUE.
arrayInd(), if you need array/matrix indices instead
of 1D vector ones.
x <- c(1:4, 0:5, 11) which.min(x) which.max(x) ## it *does* work with NA's present, by discarding them: presidents[1:30] range(presidents, na.rm = TRUE) which.min(presidents) # 28 which.max(presidents) # 2 ## Find the first occurrence, i.e. the first TRUE, if there is at least one: x <- rpois(10000, lambda = 10); x[sample.int(50, 20)] <- NA ## where is the first value >= 20 ? which.max(x >= 20) ## Also works for lists (which can be coerced to numeric vectors): which.min(list(A = 7, pi = pi)) ## -> c(pi = 2L)