r Чтение нескольких текстовых файлов и ошибка: больше столбцов, чем имен столбцов - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь прочитать почти 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 голосов
/ 09 февраля 2019

Скорее всего, какое-то текстовое поле в ваших данных содержит |, что read.table() сбивает с толку для разделителя

Попробуйте использовать более надежный data.table::fread() вместо read.table()

library(data.table)

fread("filename.csv")
...