首页 > 解决方案 > 将多个文本文件合并为一个 tsv 文件

问题描述

我总共有 254 个文本文件。我想在 r-programming 中将所有文本文件转换为一个 tsv 文件。我该怎么做?即使在 r 中不可能,还有其他方法可以做到吗?

 path <- setwd("~/syeda_demo/transcripts/")

 files <- list.files(path = 'path', 
                pattern = '\\.txt$', full.names = TRUE)

map_dfr(files, read_table) %>%
      write_tsv('path/newfile.tsv')`

标签: rdatabasedata-analysis

解决方案


我们从带有 的文件夹中获取文件列表list.files,然后遍历文件,使用read_tablefromreadr读取所有文件,将它们行绑定到单个数据集 ( _dfr) 并将其作为新文件写回write_tsv

library(readr)
library(purrr)
library(dplyr)
files <- list.files(path = '/path/to/your/folder', 
            pattern = '\\.txt$', full.names = TRUE)
map_dfr(files, read_table) %>%
      write_tsv(path = '/path/to/your/folder/yourfile.tsv')

如果文件真的很大,我们可以使用fread/fwritefromdata.table

library(data.table)
fwrite(rbindlist(lapply(files, fread), fill = TRUE), 
    file = "/path/to/your/folder/yourfile.tsv", sep="\t")                

推荐阅读