簡體   English   中英

分為3個字符長度

[英]Split into 3 character length

我有一個非常簡單的問題:如何在單個代碼中將以下文本分為3個

mycodes <- c("ATTTGGGCTAATTTTGTTTCTTTCTGGGTCTCTC")
strsplit(mycodes, split = character(3), fixed = T, perl = FALSE, useBytes = FALSE)

[[1]]
 [1] "A" "T" "T" "T" "G" "G" "G" "C" "T" "A" "A" "T" "T" "T" "T" "G" "T" "T" "T" "C"
[21] "T" "T" "T" "C" "T" "G" "G" "G" "T" "C" "T" "C" "T" "C"

這不是我想要的; 我一次要三個字母:

[1] "ATT"  "TGG", "GCT"...............and so on the final may be of one, two or three letters depending upon the letter availability.

謝謝;

我認為您想使用密碼子。 如果是這樣,您可能需要查看Bioconductor提供的Biostrings軟件包。 它提供了用於處理生物序列數據的多種工具。

library(Biostrings)
?codons

您可以通過一點笨拙的強制實現您想要的:

as.character(codons(DNAString(mycodes)))

這是使用stringr包的一種方法

require(stringr)
start = seq(1, nchar(mycodes), 3)
stop  = pmin(start + 2, nchar(mycodes))
str_sub(mycodes, start, stop)

輸出是

[1] "ATT" "TGG" "GCT" "AAT" "TTT" "GTT" "TCT" "TTC" "TGG"
[10] "GTC" "TCT" "C" 

您還可以使用:

 strsplit(data, '(?<=.{3})', perl=TRUE)
[[1]]
 [1] "ATT" "TGG" "GCT" "AAT" "TTT" "GTT" "TCT" "TTC" "TGG" "GTC" "TCT" "C" 

要么

library(stringi)
stri_extract_all_regex(data, '.{1,3}')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM