Список только файлы в каталоге, которые находятся в ссылке data.frame в R? - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь сделать что-то, что может быть невозможным в R, но я в основном R самоучка, поэтому есть большая вероятность, что я делаю очевидную ошибку.

Я пытаюсьиспользовать функцию list.files для вывода списка файлов в папке, которые также перечислены во фрейме справочных данных.

Мой фрейм данных выглядит следующим образом:

> 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

Списокя хочу файлы спектра в столбце Spectrum.file, а папка, из которой я перечисляю, содержит фактические файлы, а затем некоторые из других обработок.У меня есть отдельные кадры данных для каждой обработки, и файлы спектра разделены по дате.

current.folder <- "G:\\Team Drives\\USDA_SCRI\\UCSC_field_trial_results\\Gasmet\\G2\\180828_180829_G2\\Samples\\"
setwd("G:\\Team Drives\\USDA_SCRI\\UCSC_field_trial_results\\Gasmet\\G2\\180828_180829_G2\\Samples\\")
new.folder <- "C:\\Users\\pres9340\\Desktop\\test"
list.of.files = list.files(current.folder, G2_1A27$Spectrum.file)

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

1 Ответ

0 голосов
/ 05 декабря 2018

Зависит от того, что вы намереваетесь делать с соответствующим списком файлов, что-то вроде этого:

# 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...