Я хочу рекурсивно сканировать все папки в getwd()
, выбрать те, которые соответствуют шаблону, добавить имя папки в качестве нового столбца subject
и написать по одному .csv
для каждой папки.
Пока мне удалось сделать следующее, но это работает только для ручного переключения папок:
library(tidyverse)
dir <- "AP4T/"
APT4 <-
list.files(path = dir, pattern = "*_PULS.log") %>%
map_df(~read_table2(., skip = 5), .id="file") %>%
select(-CHANNEL, -SIGNAL)
write_csv2(APT4, path = "APT4T/resp.csv")
Пока этот код работает, мне сложно вручную менять сотни папок, и я верю, что есть способ автоматизировать его, но не могу понять, как.
Например:
dir<-list.dirs(, full.names = T, recursive = T)
for(i in dir){
list.files(path = dir, pattern = "*_RESP.log", full.names = T) %>%
map_df(~read_table2(., skip = 5), .id="file") %>%
select(-CHANNEL, -SIGNAL) %>%
write_csv(., path = "resp.csv")
}
Создаст один гигантский CSV-файл со ВСЕМИ файлами, соответствующими шаблону - из всех каталогов и без сохранения какого-либо конкретного столбца «имя каталога», чтобы я мог идентифицировать предметы исследования.
Кроме того, поскольку даже один файл огромен, мое программное обеспечение для обработки данных работает лучше на основе одного файла для каждого участника. Вот почему я хотел бы сохранить результат, соответствующий шаблону, в отдельных файлах с дополнительными столбцами для
- номер файла, который помещается в одну папку - Работает, добавив .id="file
к ~read_table2()
call
- имя папки (папка = тема)
Я чувствую, что я близок, но здесь все еще не хватает некоторых очков.
Спасибо за любую помощь