【发布时间】:2016-05-18 04:56:00
【问题描述】:
我有一个只包含字符元素的向量,比如说
v <- c("A","B","C")
和一个只包含逻辑元素的矩阵,其宽度等于v的长度和任意长度:
> M <- matrix(c(TRUE,FALSE,TRUE,FALSE,TRUE,TRUE),ncol=3,byrow=TRUE)
> M
[,1] [,2] [,3]
[1,] TRUE FALSE TRUE
[2,] FALSE TRUE TRUE
现在我想将M的每一行索引到v中,折叠,得到一个向量r,其中每个元素在一个字符表达式中包含M的对应行。在给出的示例中,r 的元素将是
> r
"A C" "B C"
我可以单独(或在一个循环中)为每一行执行此操作,使用
r[i] <- paste(v[as.logical(M[i,])], collapse="")
但希望有一个更有效的解决方案可以一次处理整个矩阵。
【问题讨论】: