聚合来自多个 excel 个具有相同结构的文件的数据

Aggregate data from multiple excel files with the same structure

我准备了一份调查,收件人必须填写一份 excel 文件。我现在有一百个 excel 个结构完全相同但条目不同的文件。例如,对于 recipient_b 我们有:

每个 excel 文件都以收件人的名字命名。例如:recipient_a_survey.xlsx; recipient_b_survey.xlsx,等等

我想获得这样的数据框:

Name         birth_place birth_date domicile
recipient_a  London      21/04/1965 London
recipient_b  Manchester  19/02/1985 London
recipient_c  Glasgow     14/08/1991 Edinburgh
...

有什么好的方法吗?一种也适用于 excel.

列表的方法

您可以创建一个包含 excel 个文件的向量以使用 list.files 读取,转置它们并将它们绑定到一个对象中 (result)。

library(tidyverse)

file_list <- list.files('folder/of/excelfiles', pattern = '\.xlsx$', full.names = TRUE)

map_df(file_list, ~{
  df <- readxl::read_excel(.x)
  df %>%
    mutate(col = c('domicile', 'birth_date', 'birth_place')) %>%
    select(-a) %>%
    pivot_wider(names_from = col, values_from = b) %>%
    mutate(Name = tools::file_path_sans_ext(basename(.x)), .before = 1)
}) -> result

result