fread~对于循环索引的影响

目的:

  • 比较45列与分别与29:40列的差异倍数,保存至少9个差异数大于2倍的row

思路:

  • 笨方法,使用fread读取数据,参数与先前一致。
  • 使用for循环方式一次比较列的差异。(等技术提高再进行修改)

问题:

当根据x,y索引的时候,报错提示:

Error in[.data.table(input_table, i, j) : j (the 2nd argument inside [...]) is a single symbol but column name 'j' is not found.
但是当我使用read.table()却无任何报错。

报错代码如下:

library(read.table)
input_table <- fread(in_file_name,header = T,quote="",fill=T,check.names = F); #load file;
# input_table <- read.table(in_file_name,header = TRUE,sep="\t",comment.char = "",fill=T,quote = "")#load file
i <-1
j <-1
input_table[i,j]

改进代码如下:

library(read.table)
input_table <- fread(in_file_name,header = T,quote="",fill=T,check.names = F); #load file;
# input_table <- read.table(in_file_name,header = TRUE,sep="\t",comment.char = "",fill=T,quote = "")#load file
i <-1
j <-1
input_table[i,j]
p<-colnames(input_table)  #使用其他方式避开此trick
input_table[i,get(p[j])]

全部代码如下:

library(read.table)
input_table <- fread(in_file_name,header = T,quote="",fill=T,check.names = F); #load file;
# input_table <- read.table(in_file_name,header = TRUE,sep="\t",comment.char = "",fill=T,quote = "")#load file

paste("1_load file success!\n")

#step2,获取差异显著的列的index(差异数大于2倍,且大于任意9个组织)
p<-colnames(input_table) #此处一定要加,防止报错
x = 2 && temp !=0){
      count = count +1
    }else if (temp == 0 && input_table[row_line,45] !=0){
      count = count +1
    }
  }
  if(count >=9){#save index
    x <- c(x,row_line)
  }
}

你可能感兴趣的:(fread~对于循环索引的影响)