首页 > 解决方案 > 按顺序读取多个 txt 文件并将它们组合成一个数据帧,但在 r 中标记新生成的数据帧中每一行的来源

问题描述

我有 6 个 txt 文件,我想将它们组合成 1 个数据框。我知道如何同时阅读它们并以默认方式组合它们。我在这个网站上学会了这样做:

txt_files_ls = list.files(path=mypath, pattern="*.txt") 
txt_files_df <- lapply(txt_files_ls, function(x) {read.table(file = x, header = T, sep ="\t")})
# Combine them
combined_df <- do.call("rbind", lapply(txt_files_df, as.data.frame))

现在我要做的是设置 read.table 以按照我定义的顺序读取 txt 文件,这样在组合它们之后,我将能够用它们的原始 txt 文件名的名称标记行。谢谢

标签: rdataframe

解决方案


你可以试试这个:

txt_files_ls = list.files(path=mypath, pattern="*.txt") 
#The function for reading
read.data <- function(x)
{
  y <- read.table(file = x, header = T, sep ="\t")
  y$var <- x
  return(y)
}
#Read data
txt_files_df <- lapply(txt_files_ls,read.data)
# Combine them
combined_df <- do.call("rbind", lapply(txt_files_df, as.data.frame))

其中var包含每个文件的名称。


推荐阅读