填充循环列表 - R

时间:2016-03-26 10:14:01

标签: r

我的问题是:我有一个包含三列的表,第一列包含基因名称。基因“开始”的第二个位置,以及“结束”的第三个位置。

我想创建一个循环,允许我测试基因i + 1是否与i基因重叠。如果是这种情况,我想创建一个包含基因i和i + 1的子列表。如果条件满足,我想测试基因i + 2是否与i + 1重叠,这次如果这是真的,我想在这个子列表中添加基因i + 2。如果不是这种情况,我想再次创建另一个子列表,直到我的表结束。

我尝试了几种方法,但有时我会接下来的所有基因,有时候我会得到成对重叠的基因但不会更多。以下是我正在编写的一个示例,它在每个基因的不同子列表中恢复,但我不能用我之前的条件填充这些子列表。

mylist_operons = list()
gene_table = read.table("F:/coordonnees_genomiques.tab")
counter = 0
for (i in 2:length(gene_table[,1])) {
  if (gene_table[i,2]-gene_table[i-1,3]<= 0) {
  sub_list <- list(as.character(gene_table[i,1]))
  mylist_operons[[i-counter]] = sub_list
  counter = counter+1
  }
  else {
    counter = 0
    sub_list <- list(as.character(gene_table[i,1]))
    mylist_operons[[i]] = sub_list
    }

}

0 个答案:

没有答案