是否可以快速识别矩阵的所有下标,与其内容无关?
例如:
dat <- matrix(runif(20),nrow=5)
which(!is.na(dat),arr.ind=TRUE)
which(dat!="foo",arr.ind=TRUE)
如果矩阵的值不是NA或“foo”,则可以工作。但有没有一种简单的方法可以为所有矩阵获取这些下标?
答案 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)