Как читать в нескольких текстовых файлах одновременно и объединить в один дф с помощью R? - PullRequest
0 голосов
/ 29 апреля 2020

У меня 160 текстовых файлов с одинаковыми столбцами данных, но без заголовков. Разделителя нет, поэтому я должен использовать read.fwf, я могу читать по одному, используя этот код:

myfile= "//PATH/AllFiles/10914_1Mile_TextFile.txt"

read_fwf(myfile, fwf_cols(NUM=5,YNUM=20,STREETNUM=8,STREETPRED=2,STREETNAME=20,STREETTYPE=8,STREETPOSTD=2,STREETADD2=40,CITY=29,STATE=2,ZIP=5,ZIP4=4,EFFDATE=8,TYPE=1,
                                          IUM=6,FILL=1,VAMOUNT=9,FILLS=1,OVAMOUNT=9))

Но делать это 160 раз не идеально, поэтому я пытаюсь получить их все сразу, чтобы связать их. Пока это мой код:

CompleteDataCollection <- do.call( "rbind", lapply(myfile, function(fn) 
  data.frame(Filename=fn, read.fwf(fn,
                                   widths = c(5,20,8,2,20,8,2,40,29,2,5,4,8,1,6,1, 9,1,9),

                                   header = FALSE,
                                   col.names = c("NUM","YNUM","STREETNUM","STREETPRED","STREETNAME","STREETTYPE","STREETPOSTD","STREETADD2","CITY",
                                                  "STATE","ZIP","ZIP4","EFFDATE","TYPE", "PREMIUM","FILL", "VAMOUNT","FILLS","OVAMOUNT"))
  )))

Я продолжаю получать сообщения об ошибках, а fn ничего не установлен, так ли это? Любые предложения приветствуются и приветствуются.

1 Ответ

0 голосов
/ 29 апреля 2020

fn должен быть список со всеми именами файлов в вашем каталоге. Вы можете сохранить список всех имен файлов, если ваш рабочий каталог настроен на каталог, в котором находятся текстовые файлы:

fn <- dir()

Затем выполните lapply для fn.

CompleteDataCollection <- lapply(fn, function(x) read.fwf(fn,
                               widths = c(5,20,8,2,20,8,2,40,29,2,5,4,8,1,6,1, 9,1,9),

                               header = FALSE,
                               col.names = c("NUM","YNUM","STREETNUM","STREETPRED","STREETNAME","STREETTYPE","STREETPOSTD","STREETADD2","CITY",
                                              "STATE","ZIP","ZIP4","EFFDATE","TYPE", "PREMIUM","FILL", "VAMOUNT","FILLS","OVAMOUNT"))
...