我有以下序列:
s0 <- "KDRH?THLA???RT?HLAK"
通配符的表示方式是
?
。我想要做的是用来自这个向量的样本字符替换该字符。AADict <- c("A", "R", "N", "D", "C", "E", "Q", "G", "H",
"I", "L", "K", "M", "F", "P", "S", "T", "W", "Y", "V")
由于 s0
有5个通配符 ?
,因此我会从AADict中进行采样:
set.seed(1)
nof_wildcard <- 5
tolower(sample(AADict, nof_wildcard, TRUE))
这给出了[1] "d" "q" "a" "r" "l"
因此预期结果是:
KDRH?THLA???RT?HLAK
KDRHdTHLAqarRTlHLAK
因此,采样的字符必须恰好放置在?
的相同位置,但字符的顺序不重要。例如,此答案也是可以接受的:KDRHqTHLAdlaRTrHLAK
。
我该如何使用 R 实现呢?
其他示例包括:
s1 <- "FKDHKHIDVKDRHRTHLAK????RTRHLAK"
s2 <- "FKHIDVKDRHRTRHLAK??????????"