查找矩阵的所有下标

时间:2012-11-14 02:12:21

标签: r

是否可以快速识别矩阵的所有下标,与其内容无关?

例如:

dat <- matrix(runif(20),nrow=5)

which(!is.na(dat),arr.ind=TRUE)
which(dat!="foo",arr.ind=TRUE)

如果矩阵的值不是NA或“foo”,则可以工作。但有没有一种简单的方法可以为所有矩阵获取这些下标?

3 个答案:

答案 0 :(得分:2)

expand.grid(row = seq(nrow(dat)), col = seq(ncol(dat)))
#   row col
#1    1   1
#2    2   1
#3    3   1
#4    4   1
#5    5   1
#6    1   2
#7    2   2
#8    3   2
#9    4   2
#10   5   2
#11   1   3
#12   2   3
#13   3   3
#14   4   3
#15   5   3
#16   1   4
#17   2   4
#18   3   4
#19   4   4
#20   5   4

答案 1 :(得分:2)

不太确定所有下标的含义,但这会创建一个包含行和列索引的所有组合的data.frame

expand.grid(sapply(dim(dat), seq_len))

答案 2 :(得分:2)

expand.grid()已经足够了,但这里有一个很好的选择:

 matrix(c(row(dat), col(dat)), ncol = 2)