如何将R中的序列分成多个子部分

时间:2016-07-20 14:08:45

标签: r

seq =" GAGTAGGAGGAG",如何将此序列分成以下子序列" GAG"," TAG"," GAG" ," GAG"即如何将序列分成三组

1 个答案:

答案 0 :(得分:1)

我们可以创建一个名为fixed_split的函数,它将字符串拆分成相等的部分。正则表达式是一个与n元素匹配的lookbehind:

fixed_split <- function(text, n) {
  strsplit(text, paste0("(?<=.{",n,"})"), perl=TRUE)
}

fixed_split("GAGTAGGAGGAG", 3)
[[1]]
[1] "GAG" "TAG" "GAG" "GAG"

修改

在评论中,您说sequence ="ATGATGATG"不起作用:

strsplit(sequence,"(?<=.{3})", perl=TRUE)
[[1]]
[1] "ATG" "ATG" "ATG"