微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R - 合并多个 .xlsx 文件后保留列名

如何解决R - 合并多个 .xlsx 文件后保留列名

我想合并具有相同结构的多个 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

解决方法

我认为您的问题是 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")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。