r读取多个.text文件和错误:列数多于列名

时间:2019-02-09 06:37:06

标签: r import lapply rbind read.table

我正在尝试根据以下脚本读取将近30000个用竖线(|)分隔的文本文件

   mypath = "path/to/my/text/files/directory"
   setwd(mypath)

  # Create list of text files
  txt_files_ls = list.files(path=mypath, pattern="*.txt") 


  # Read the files in, assuming comma separator
  txt_files_df <- lapply(txt_files_ls, function(x) {read.table(file = x, header = T, sep ="|")})

  # Combine them
  Combined_df <- do.call("rbind", lapply(txt_files_df, as.data.frame))

我遇到错误

Error in read.table(file = x, header = T, sep = "|") : 
  more columns than column names
In addition: There were 37 warnings (use warnings() to see them)

我的文件夹中有30000个文本文件,实际上不可能打开每个文件并检查哪个文件的列数超出了预期。

如果有人可以帮助我解决此错误,则将很有帮助。预先感谢。

1 个答案:

答案 0 :(得分:0)

数据中的某些文本字段很可能包含|read.table()可能会引起分隔符混乱

尝试使用功能更强大的data.table::fread()代替read.table()

library(data.table)

fread("filename.csv")