美文网首页
fread~对于循环索引的影响

fread~对于循环索引的影响

作者: EngineerChicken | 来源:发表于2019-01-14 14:01 被阅读0次

    目的:

    • 比较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 <c()
    nrow(input_table)
    for(row_line in 1:nrow(input_table)){ #遍历行
      #print(row_line)
      count <- 0
      for(hit in 29:40){
        # input_table[row_line,get(p[hit])]
        temp <- input_table[row_line,get(p[hit])]
        if(input_table[row_line,45] / temp >= 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~对于循环索引的影响

          本文链接:https://www.haomeiwen.com/subject/sqiddqtx.html