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()完全に十分ですが、ここに気の利いた代替案があります:

 matrix(c(row(dat), col(dat)), ncol = 2)
于 2012-11-14T04:03:18.693 に答える
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 に答える