读入文件名部分更改的文件

时间:2018-10-12 17:26:48

标签: r

我有一些类似于以下文件名;

第一年:

blds_PANEL_DPK_8237_8283
blds_PANEL_DPR_8237_8283
blds_PANEL_MWK_8237_8283

哪个都位于同一文件路径中。但是在不同年份的不同文件路径中,我有非常相似的文件;

第二年:

blds_PANEL_MHG_9817_9876
blds_PANEL_HKG_9817_9876
blds_PANEL_DPR_9817_9876

某些文件的名称与前几年相同,但有些名称会更改。名称中唯一更改的部分是名称的MHGHKGDPR部分,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)

0 个答案:

没有答案