[R] arrayInd and which
Keith S Weintraub
kw1958 at gmail.com
Wed Apr 3 16:53:56 CEST 2013
Folks,
I have Googled but not found much regarding arrayInd aside from the "which" help page.
Any good examples or docs on what arrayInd does that is better or different from which()?
In addition take the following 20x10 matrix:
td<-structure(c(1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 6, 6, 6, 6, 6,
6, 6, 1, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6,
6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6,
3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 2,
6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 1, 6, 6, 5, 6, 6, 6, 6, 5, 6,
6, 3, 6, 6, 6, 6, 6, 6, 6, 6, 2, 6, 6, 6, 6, 6, 6, 6, 2, 6, 6,
4, 6, 6, 6, 6, 6, 6, 6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6), .Dim = c(20L, 10L
))
I want to find the cells which (hah!) are <= c(rep(5,5), rep(4,5)). That is my bounds are by column.
Is there a better way to do this other than:
bounds<-c(rep(5,5), rep(4,5))
idxs<-which(apply(td, 2, "<=", bounds), arr.ind = TRUE)
> idxs
row col
[1,] 1 1
[2,] 13 1
[3,] 13 2
[4,] 1 3
[5,] 8 3
[6,] 13 3
[7,] 1 4
[8,] 13 4
[9,] 1 5
[10,] 13 5
[11,] 1 6
[12,] 4 6
[13,] 13 6
[14,] 4 7
[15,] 13 7
[16,] 1 8
[17,] 4 8
[18,] 13 8
[19,] 3 9
[20,] 1 10
[21,] 13 10
Lastly can you explain these results:
> td[idxs[10,]]
[1] 4 6
> td[idxs[10,1]]
[1] 4
> td[idxs[10,2]]
[1] 6
> td[idxs[10,3]]
Error: subscript out of bounds
Thanks in advance for your help,
KW
--
More information about the R-help
mailing list