小编Ste*_*ern的帖子

R中for循环的替代方案?

我有2个文件,我想用R组合.

head(bed)
chr8 41513235 41513282 ANK1.Exon1
chr8 41518973 41519092 ANK1.Exon2
Run Code Online (Sandbox Code Playgroud)

第一个是给出间隔和它们的名字.(染色体,从,到,名称)

head(coverage)
chr1 41513235 20
chr1 41513236 19
chr1 41513237 19
Run Code Online (Sandbox Code Playgroud)

第二个是为单个基地提供保险.(染色体,位置,覆盖范围)

我现在想要在每个职位旁边写下每个外显子的名字.这将导致某些位置没有"外显子",我想在之后删除.

我想出了如何做我想做的事情.但是它需要3个循环和大约15个小时的计算时间.因为for循环不是R中的最佳实践,我想知道是否有人知道比以下更好的方法:

coverage <- cbind(coverage, "Exon")
coverage[,4] <- NA

for(i in 1:nrow(bed)){
 for(n in bed[i,2]:bed[i,3]{
  for(m in 1:nrow(coverage)){
   if(coverage[m,2]==n){
    file[m,4] <- bed[i,4]
   }
  }
 }
}

na.omit(coverage)
Run Code Online (Sandbox Code Playgroud)

由于所有三个位置都在intervall"ANK1.Exon1"中,因此输出应如下所示:

head(coverage) 
chr1 41513235 20 ANK1.Exon1 
chr1 41513236 19 ANK1.Exon1 
chr1 41513237 19 ANK1.Exon1 
Run Code Online (Sandbox Code Playgroud)

code-coverage r bioinformatics

5
推荐指数
1
解决办法
141
查看次数

标签 统计

bioinformatics ×1

code-coverage ×1

r ×1