2017-04-20 24 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