emperor <- rbind(cbind('Augustus','Tiberius'),cbind('Caligula','Claudius'))
如何返回包含序列“us”的所有单元格的行号和列号,即[1,1],[1,2],[2,2]?

最佳答案

我们可以使用grepl来获取逻辑索引的vector,转换为与原始matrix('emperor')尺寸相同的matrix,然后用whicharr.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'的dimwhich,并用ojit_code换行。
 which(`dim<-`(grepl('us', emperor), dim(emperor)), arr.ind=TRUE)

09-19 13:56