1

有没有一种快速的方法来识别矩阵的所有下标,而与它的内容无关?

例如:

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

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

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

4

3 回答 3

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
于 2012-11-14T02:17:58.060 回答
2

不太确定所有下标是什么意思,但这将创建一个包含行和列索引的所有组合的 data.frame

expand.grid(sapply(dim(dat), seq_len))
于 2012-11-14T02:19:00.610 回答
2

expand.grid()完全足够了,但这里有一个不错的选择:

 matrix(c(row(dat), col(dat)), ncol = 2)
于 2012-11-14T04:03:18.693 回答