1

我想合并具有相同结构的多个 xlsx 文件(大约 100 个)的列,这意味着它们都有 5 行和 2 列。

我正在使用此处提供的答案(稍作编辑以合并列而不是行)

library(purrr)
library(writexl)


files <- list.files(pattern="*.xlsx")
mainDF <- files %>% map_dfc(read.xlsx) 

write_xlsx(mainDF, "merge.xlsx")

但我最终得到的是每张纸的第一行现在是列名。

如何在合并文件中保留原始列名?

同样在合并的文件中,有名为“file”的新列显示文件名,我也想删除它们。

任何帮助,将不胜感激 :)

编辑

示例:我有 file1.xlsx,file2.xlsx 看起来像

Data col1              Data  col2
 x    1                 x     4
 y    3                 y     6

我的输出是

1 4
3 6

但我的目标是拥有 mergefile.xlsx

Data col1 col2
  x   1    4
  y   3    6
4

1 回答 1

1

我认为您的问题是read.csv没有将它生成的数据帧的名称设置为输入文件的标题。您可以使用readr::read_csv来获取此行为。

library(dplyr)
library(readr)

files <- list.files(pattern="*.csv")
dfs <- lapply(files, read_csv)

combined_df <- Reduce(function(x, y) full_join(x, y, by = "Data"), dfs)

write_xlsx(combined_df, "merge.xlsx")
于 2021-07-17T15:30:42.907 回答