which(x, arr.ind = FALSE)
x
|
a logical vector or array. NA s are allowed an omitted.
|
arr.ind
|
logical; should array indices be returned
when x is an array?
|
TRUE
indices of a logical object,
allowing for array indices.arr.ind == FALSE
(the default), an integer vector with
length
equal to sum(x)
, i.e., to the number of
TRUE
s in x
; Basically, the result is
(1:length(x))[x]
.
If arr.ind == TRUE
and x
is an array
(has a dim
attribute), the result is a matrix
who's rows each are the indices of one element of x
; see
Examples below.
Logic
which(LETTERS == "R") which(c(T,F,T,NA,F,F,T))#> 1 3 7 which((1:12)%%2 == 0) # which are even? str(which(1:10 > 3, arr.ind=TRUE)) ( m <- matrix(1:12,3,4) ) which(m %% 3 == 0) which(m %% 3 == 0, arr.ind=TRUE) rownames(m) <- paste("Case",1:3, sep="_") which(m %% 5 == 0, arr.ind=TRUE) dim(m) <- c(2,2,3); m which(m %% 3 == 0, arr.ind=FALSE) which(m %% 3 == 0, arr.ind=TRUE) vm <- c(m); dim(vm) <- length(vm) #-- funny thing with length(dim(..)) == 1 which(vm %% 3 == 0, arr.ind=TRUE)