批量从文件合并表格

作者: BeeBee生信 | 来源:发表于2019-12-29 22:33 被阅读0次
    以及如何创建空tibble

    做生信的经常需要批量合并表格,或者按行或者按列。比如下载了TCGA的数据,里面每个样本是一个文件,第一步我们可能需要先把所以的合并到一个矩阵里。

    假设把所有文件都放在一个目录里,首先取得文件列表,用 list.files 函数。

    fileList <- list.files(main_dir, pattern = "seg$", full.names = TRUE)
    

    设置 full.names = TRUE 可以获得每个文件路径,不需要手动拼接。第二部写 for 循环读取每个文件,并且使用 bind_rows/cols 进行合并。此时需要一个空表格,然后把所有读取的表格合并到这里。创建空表格方法是。

    > empty_tibble <- tibble(var1 = character(), var2 = double(), var3 = logical())
    > empty_tibble
    # A tibble: 0 x 3
    # ... with 3 variables: var1 <chr>, var2 <dbl>, var3 <lgl>
    

    如果懒得创建空表格,可以选择将读取的表格放在一个列表(list)里,然后对列表使用 bind_rows/cols 。示例如下:

    fileList <- list.files(main_dir, pattern = "seg$", full.names = TRUE)
    segList <- list()
    segNum <- length(fileList)
      
    # 循环读取文件,并放到列表 segList 
    for(i in 1:segNum){
      fileI <- fileList[i]
      segI <- readr::read_tsv(fileI, col_types = cols()) %>% dplyr::mutate(`Chromosome` = as.character(`Chromosome`))
      segList[[i]] <- segI
      }
    
    # 批量合并
    segAll <- dplyr::bind_rows(segList)
    

    相关文章

      网友评论

        本文标题:批量从文件合并表格

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