文件名列表在每个元素中仅强制使用一个文件名

时间:2018-05-24 19:31:16

标签: r list csv unique elements

我正在R中为基于用户输入的字符串范围在同一目录中的.csv数据文件执行文件搜索。该字符串是文件名中的Julian构建日期代码,因此可以有多个文件,其名称中包含构建日期代码,但每个单元的其余文件名都不同(请参阅下面的输出示例)。我想要一个构建代码日期范围的这些文件名列表,每个列表元素一个文件名。当两个文件具有相同的构建代码时,我能够为每个列表元素获取一个文件名,除了,然后将它们放在一个元素中。当两个文件名在同一个元素中时,这会导致我的read.csv调用崩溃:

Error in file(file, "rt") : invalid 'description' argument

这个文件名列表将成为数据帧列表,每个元素一个,因此不能混合使用。如何指定每个列表元素中只有一个文件名?

有问题的输出:

[[1]]
[1] "C:/...125872C15278001781_20180417_095231.csv"

[[2]]
[1] "C:/...125872D15309005835_20180516_150200.csv"

[[3]]
[1] "C:/...125872D15314006345_20180516_151817.csv"

[[4]]
[1] "C:/...125872D16178000189_20180516_150743.csv"

[[5]]
[1] "C:/...125872E**16313**000033_20180516_141938.csv"<BR>
[2] "C:/...125872E**16313**000129_20180314_092803.csv"

期望的输出:

[[1]]
[1] "C:/...125872C15278001781_20180417_095231.csv"

[[2]]
[1] "C:/...125872D15309005835_20180516_150200.csv"

[[3]]
[1] "C:/...125872D15314006345_20180516_151817.csv"

[[4]]
[1] "C:/...125872D16178000189_20180516_150743.csv"

[[5]]
[1] "C:/...125872E16313000033_20180516_141938.csv"

[[6]]
[1] "C:/...125872E16313000129_20180314_092803.csv"

Psuedo-code(不允许上传文件):

Fun.tempFile <- function(y){

  tempfileName <- paste0(workingDirectory, "/EEPROM_Dump_*", y, "*.csv", collapse = "")

  tempfileName2 <- Sys.glob(tempfileName, dirmark = FALSE) 
  tempfileName2

  return(tempfileName2)
}

dateCodeRange <- as.character(c(begDateJ:endDateJ))

dateCodeFileNamesAll <- (c(lapply(dateCodeRange, Fun.tempFile)))

filenames <- unique(dateCodeFileNamesAll[lapply(dateCodeFileNamesAll,length)>0] )

myData = lapply(filenames, read.csv, header = FALSE)  

0 个答案:

没有答案