如何在R中导入多个txt文件并添加新的标题?

问题描述 投票:1回答:1

我有8个没有头的文本文件都保存了,我的目标是把它们全部读进去,然后合并成一个文件。我还想添加列名,但一直得到一个错误。到目前为止,我的代码是

txt_files_ls = list.files(path=mypath, pattern="*.txt")


txt_files_df <- lapply(txt_files_ls, function(x) {read.table(file = x, header = F, sep ="\t",colnames(x))})


combined_df <- do.call("rbind", lapply(txt_files_df, as.data.frame)) 

colnames(combined_df)<-c("INSUR","POLICY","STREET","STREETPRED","STREETNAME","STREETTYPE","STREETPOSTD","STREETADD2","CITY","STATE","ZIP","ZIP4","EFFDATE","POLTYPE","PREM","FILL", "BVAMOUNT","Full","COUNT")

我一直收到这个错误: Error in names(x) <- value : 'names' attribute [19] must be the same length as the vector [1] (长度必须与向量[1]相同)

但我知道这些都是列,而且是相同的。

我也在尝试有一列ID是来自文本文件的地方,但这是一个单独的问题.谢谢你看到这个的人

r import text-files
1个回答
0
投票

试试这个。

txt_files_ls <- paste(mypath, list.files(path = mypath, pattern = "*.txt"), sep = "/")
txt_files_df_list <- vector("list", length(txt_files_ls))
txt_files_df_list <- lapply(txt_files_ls, 
                       function(x){data.frame(read.table(file = x, header = F,
                                                         sep ="\t",colnames(x)))})
combined_df <- setNames(do.call("rbind", txt_files_df_list),
                        c("INSUR", "POLICY","STREET","STREETPRED","STREETNAME",
                          "STREETTYPE","STREETPOSTD","STREETADD2","CITY","STATE",
                          "ZIP","ZIP4","EFFDATE","POLTYPE","PREM","FILL", "BVAMOUNT",
                          "Full","COUNT")) 
© www.soinside.com 2019 - 2024. All rights reserved.