【发布时间】:2021-09-26 00:01:31
【问题描述】:
我想合并多个 xlsx 文件(大约 100 个)的列,它们都具有相同的结构,这意味着它们都有 5 行和 2 列。
我正在使用here 提供的答案(稍作修改以合并列而不是行)
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
【问题讨论】:
-
每个文件的第一行都是空白的吗?
-
单个文件的第一行包含列名,但合并后的列名是数字(单个文件中使用的数据)
-
你是横向绑定这些文件吗?我的意思是水平添加列?
-
@monte 是的,我想另一种说法是只取每个文件的第二列并将其附加到第一个文件(如果有意义的话)
-
我建议你使用
map而不是map_dfc,这样你的mainDF就是一个列表,其元素是你的excel表格,然后使用mainDF %>% reduce(~ full_join(..1, ..2, by = "Data"))绑定它们。