我有DNA的序列串,如:“ACGTTATATTTATGTTTTGGGATTTTAGCAGGAATGATTGGTACTGCTTTCAGTATGTTAATTAGATTAGAGTTATCGGGACCGGGATCAATGTTAGGGGATATCATTTATACAATGTTATTGTTACTGCTCATGCTTTTGTTATGATTTTTTTTTTAGTAATGCCTGTGATGATTGGGGGGTTTGGGAATTGGTTAGTACCATTATATATTGGTGCCCCAGATATGGCATTCCCTCGATTAAATAATATAAGTTTTTGATTATTACCGCCGGCTTTAAG”
有没有办法可以删除特定位置的字母,例如 R 中的位置 20?
我想我可以使用正则表达式,但我认为我的表达方式不对。
谢谢
一种选择是捕获字符直到 19,删除第 20 个元素并捕获剩余的字符
str2 <- sub("^(.{1,19}).(.*)", "\\1\\2", str1)
Run Code Online (Sandbox Code Playgroud)
或者使用单个捕获组
sub("^(.{1,19}).", "\\1", str1)
Run Code Online (Sandbox Code Playgroud)
或者另一种选择是 str_sub
library(stringr)
nchar(str1)
#[1] 280
str_sub(str1, 20, 20) <- ""
nchar(str1)
#[1] 279
Run Code Online (Sandbox Code Playgroud)
str1 <- "ACGTTATATTTATGTTTTGGGATTTTAGCAGGAATGATTGGTACTGCTTTCAGTATGTTAATTAGATTAGAGTTATCGGGACCGGGATCAATGTTAGGGGATATCATTTATACAATGTTATTGTTACTGCTCATGCTTTTGTTATGATTTTTTTTTTAGTAATGCCTGTGATGATTGGGGGGTTTGGGAATTGGTTAGTACCATTATATATTGGTGCCCCAGATATGGCATTCCCTCGATTAAATAATATAAGTTTTTGATTATTACCGCCGGCTTTAAG"
Run Code Online (Sandbox Code Playgroud)