内容に関係なく、行列の添字をすべて識別する簡単な方法はありますか?
例えば:
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()
完全に十分ですが、ここに気の利いた代替案があります:
matrix(c(row(dat), col(dat)), ncol = 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
すべての添え字が何を意味するのかよくわかりませんが、これにより、行と列のインデックスのすべての組み合わせを含む data.frame が作成されます
expand.grid(sapply(dim(dat), seq_len))