2017-04-20 20 views
1

我有一个DNA序列列表,例如“AGAACCTTATTGGGTCAAGT”。如果我想创建一个包含所有可能的字符串的列表,这些字符串可以按照给定长度的顺序(例如4)顺序地发生,那么在R中该怎么做?R中的字符串操作

在这种情况下,第一个字符串将是“AGAA”。第二个是“GAAC”,第三个是“AACC”,等等。

+0

查找生成排列。 – Carcigenicate

回答

3
x = "AGAACCTTATTGGGTCAAGT" 
sapply(1:(nchar(x)-3), function(i) substr(x, i, i+3)) 
#[1] "AGAA" "GAAC" "AACC" "ACCT" "CCTT" "CTTA" "TTAT" "TATT" "ATTG" "TTGG" "TGGG" "GGGT" "GGTC" "GTCA" "TCAA" "CAAG" "AAGT" 
+0

谢谢!如果序列在一个大列表中,首先取消列表然后使用sapply或通过每个列表元素使用for语句会更有效吗? – user1294476