我试图通过跳过1个字母并将它们分组为三个字母直到在数据帧中找到“ tac”,来对列表中的字母进行计数,然后我想通过跳过3个字母直到我将其余的字母分组为三个找到“ att”
我想说的例子:
"agttacgtaattatgat"
它应该做:
agt,gtt,tta,tac stop, gta,att stop ,atg,tga,gat
(数据框的名称为 agen )
我的代码:
y=c()
x=1
while(x<853){
x=x+1
rt<-paste(agen[x],agen[x+1],agen[x+2])
y=c(y,rt)
ff<-data.frame(y)
if(ff=="t a c"){break}
}
ay=c()
while(x<853){
x=x+3
art<-paste(agen[x],agen[x+1],agen[x+2])
ay=c(ay,art)
aff<-data.frame(ay)
if(aff=="a t t"){break}
}
第一个运行正常,但是第二个没有损坏。
代码中会有很多停止和开始的地方,所以您能帮我写一个可以完成此工作的循环吗?
答案 0 :(得分:0)
我想我大概只知道您需要什么,但这是一个代码示例,也许可以满足您的需要。我使用了您指定的示例,并使用了一个以DNA碱基为元素的载体,而不是一个“数据框”。我也改变了一些风格。
super()
如果您更多地研究DNA序列,则可能需要使用更专业的R包,例如Biostrings
。