有没有一种快速的方法来识别矩阵的所有下标,而与它的内容无关?
例如:
dat <- matrix(runif(20),nrow=5)
which(!is.na(dat),arr.ind=TRUE)
which(dat!="foo",arr.ind=TRUE)
如果矩阵的任何值都不是 NA 或“foo”,则将起作用。但是有没有一种简单的方法可以为所有矩阵获取这些下标?
有没有一种快速的方法来识别矩阵的所有下标,而与它的内容无关?
例如:
dat <- matrix(runif(20),nrow=5)
which(!is.na(dat),arr.ind=TRUE)
which(dat!="foo",arr.ind=TRUE)
如果矩阵的任何值都不是 NA 或“foo”,则将起作用。但是有没有一种简单的方法可以为所有矩阵获取这些下标?
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
不太确定所有下标是什么意思,但这将创建一个包含行和列索引的所有组合的 data.frame
expand.grid(sapply(dim(dat), seq_len))
expand.grid()
完全足够了,但这里有一个不错的选择:
matrix(c(row(dat), col(dat)), ncol = 2)