emperor <- rbind(cbind('Augustus','Tiberius'),cbind('Caligula','Claudius'))
如何返回包含序列“us”的所有单元格的行号和列号,即[1,1],[1,2],[2,2]?
最佳答案
我们可以使用grepl
来获取逻辑索引的vector
,转换为与原始matrix
('emperor')尺寸相同的matrix
,然后用which
和arr.ind=TRUE
包裹。
which(matrix(grepl('us', emperor), ncol=ncol(emperor)), arr.ind=TRUE)
# row col
#[1,] 1 1
#[2,] 1 2
#[3,] 2 2
转换
grepl
输出的另一种方法是,将dim
分配给'emperor'的dim
的which
,并用ojit_code换行。 which(`dim<-`(grepl('us', emperor), dim(emperor)), arr.ind=TRUE)