仅列出目录中位于R?的引用data.frame中的文件。

时间:2018-12-04 21:56:31

标签: r list dataframe

我正在尝试在R中做不到的事情,但是我很大程度上是R自学成才的,所以很有可能我犯了一个明显的错误。

我正在尝试使用list.files函数仅列出也在参考数据框中列出的文件夹中的文件。

我的数据框如下:

z-index

我想要的文件列表是Spectrum.file列下的质谱图文件,我列出的文件夹包含实际文件,然后包含其他处理方法。我对每种处理方法都有单独的数据框,并且光谱文件按日期划分。

> G2_1A27
     Treatment             Date Chamber_ID GasmetID       Spectrum.file
24        1A27  8/28/2018 11:51       <NA>       G2 Spectrum_000024.spe
25        1A27  8/28/2018 11:53       <NA>       G2 Spectrum_000025.spe
26        1A27  8/28/2018 11:55       <NA>       G2 Spectrum_000026.spe
27        1A27  8/28/2018 11:57       <NA>       G2 Spectrum_000027.spe
28        1A27  8/28/2018 11:59       <NA>       G2 Spectrum_000028.spe
29        1A27  8/28/2018 12:01       <NA>       G2 Spectrum_000029.spe
30        1A27  8/28/2018 12:03       <NA>       G2 Spectrum_000030.spe
31        1A27  8/28/2018 12:05       <NA>       G2 Spectrum_000031.spe

我没想到它会起作用,但是当它运行时,它确实引用了数据帧,但仅输出第一个文件,而不是列出与数据帧中的文件匹配的文件夹中的所有文件。

1 个答案:

答案 0 :(得分:0)

取决于您打算对匹配的文件列表执行的操作,如下所示:

# get full names including folder path
list.of.files = list.files(current.folder, full.names = TRUE)

# then keep only the basename (file names) matching dataframe column
clean.list.of.files <- list.of.files[ basename(list.of.files) %in% G2_1A27$Spectrum.file ]

# then read the data
myData <- lapply(clean.list.of.files, read.table)

编辑:,如果我们要复制:

file.copy(clean.list.of.files, new.folder)