假设一个矩阵包含长度为r
的所有位串并按顺序排列。
library(gtools)
mat<-permutations(n = 2, r = 5, v = c(0,1), repeats.allowed = TRUE)
mat<-cbind(mat, round(runif(nrow(mat)), digits = 2))
以及几个带有r
元素的向量:
r=5
vec<-t(replicate(100,sample(c(0,1),5,replace=T)))
对于每个向量(即vec
中的行),我想在mat
注意:我想列出每行的结果,而不仅仅是unique
元素。
是否有一种有效的方法可以在不使用for循环的情况下执行此操作?
答案 0 :(得分:1)
尝试
indx1 <- do.call(`paste0`,as.data.frame(mat[,-6]))
indx2 <- do.call(`paste0`, as.data.frame(vec))
sapply(indx2, function(x) mat[indx1 %in% x,6])