Как использовать сведения о файле и содержащей папке для добавления столбцов в фрейм данных

#r #import #tidyverse

#r #импорт #tidyverse

Вопрос:

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

У меня есть группа фреймов данных, которые я хочу импортировать в R и добавить сведения как из родительской папки, так и из имен файлов. Затем я хочу объединить их все в один фрейм данных

Имена папок и файлов указаны ниже:

Родительская папка «Quantification» > Содержит три папки с именами «Ex_1», «Ex_2», «Ex_3» > В каждой папке «Ex_» находятся 8 csv-файлов с именами от «Pos_1» до «Pos_8»

Я хочу, чтобы в каждом фрейме данных были добавлены столбцы «Ex_number» и «Pos_number.», а затем для объединения наборов данных

Заранее спасибо за любую помощь!

Ответ №1:

Когда вы устанавливаете для своего каталога «папку количественной оценки», вы можете сделать:

 list_files <- list.files(recursive = TRUE)
list_files
[1] "Ex_1/Pos_1.csv" "Ex_1/Pos_2.csv" "Ex_2/Pos_1.csv" "Ex_2/Pos_2.csv"

library(purrr)
library(dplyr)
merged_data <- set_names(list_files) %>% 
  map_dfr(~read.csv(.x),
          .id = "filename") %>% 
  mutate(Ex_number = substr(filename, 4, 4),
         Pos_number = substr(filename, 10, 10)) %>% 
  select(-filename)
  

Это дает вам один data.frame.

Комментарии:

1. Удивительно, это идеально, большое спасибо! Пришлось отредактировать числа в substr(filename, x, x), но это не ваша вина, я не дал вам точных имен файлов. Продолжайте в том же духе!