我正在尝试基于特定的重复次数创建S值与G值组合的所有可能排列的列表。例如,4次重复如下所示:[SGSGSGSG
S <- c("TCT", "TCC", "TCG", "TCA", "AGT", "AGC")
G <- c("GGT", "GGC", "GGA", "GGG")
使用向量中的值,一些示例组合为:
"TCTGGTTCTGGTTCTGGTTCTGGT"
"TCTGGTTCCGGCTCGGGATCAGGG"
我发现我可以使用gtools包独立地对每个向量进行排列,但这并不是我真正想要的:
pS <- gtools::permutations(v = S, n = length(S), r = 4, repeats.allowed = TRUE)
pG <- gtools::permutations(v = G, n = length(G), r = 4, repeats.allowed = TRUE)
是否有一种不使用for循环就能按照我所描述的方式进行所有排列的快速方法?
但是,我不知道有什么方法可以将此功能限制为仅提供由SGSGSGSG组成的排列...
使用permuteGeneral
可能更有效
library(RcppAlgos)
permuteGeneral(S, m = length(S), freqs = rep(4, length(S)))