Прочитать в файле, который имеет часть изменения имени файла - PullRequest
0 голосов
/ 12 октября 2018

У меня есть несколько имен файлов, которые выглядят следующим образом:

Год1:

blds_PANEL_DPK_8237_8283
blds_PANEL_DPR_8237_8283
blds_PANEL_MWK_8237_8283

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

Год 2:

blds_PANEL_MHG_9817_9876
blds_PANEL_HKG_9817_9876
blds_PANEL_DPR_9817_9876

Некоторые из файлов имеют те же имена, что и в предыдущие годы, но некоторые изимена меняются.Единственная часть имени, которая изменяется, - это MHG, HKG, DPR разделы имени, blds_PANEL_ остается неизменным вместе с 9817_9876.

Я создал paste0()

file_path = C:/Users...
product = blds
part_which_keeps_changing = HKG
weeks = 9817_9876

read.csv(paste0(file_path, product, product, part_which_keeps_changing, weeks, ".DAT"), header = TRUE)

Он работал хорошо для одного продукта, однако для новых продуктов я сталкиваюсь с некоторыми ошибками.Поэтому я пытаюсь загрузить данные, которые, возможно, игнорируют эту часть имени файла.

РЕДАКТИРОВАТЬ: Это, кажется, решить то, что я хочу сделать

temp <- list.files(paste0(files, product), pattern = "*.DAT")

location <- paste0(files, product, temp)

myfiles = lapply(location, read.csv)

library(plyr)
df <- ldply(myfiles, data.frame)

Как бы я ни работалв несколько другую проблему для некоторых файлов.

Если у меня есть следующее:

blds_PANEL_DPK_8237_8283
blds_PANEL_DPR_8237_8283
blds_PANEL_MWK_8237_8283

Возможно, что один из файлов не содержит информации, и когда я применяю lapplyэто прерывает и останавливает загрузку данных при загрузке данных.

Можно ли пропустить эти файлы.Вот ошибка:

Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
  no lines available in input

РЕДАКТИРОВАТЬ 2:

Кажется, это отменяет lapply ошибки:

lapply_with_error <- function(X,FUN,...){    
  lapply(X, function(x, ...) tryCatch(FUN(x, ...),
                                      error=function(e) NULL))
}

myfiles = lapply_with_error(location, read.delim)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...