R - 合并多个 .xlsx 文件后保留列名
R - Keeping column names after merging multiple .xlsx files
我想合并多个具有相同结构的 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")
但我最终得到的是每个 sheet 的第一行现在是列名。
如何在合并文件中保留原始列名?
合并后的文件中还有名为“文件”的新列,用于显示文件名,我也想将其删除。
任何帮助将不胜感激:)
编辑
示例:我 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
没有将其生成的数据帧的名称设置为输入文件的 headers。您可以使用 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")
我想合并多个具有相同结构的 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")
但我最终得到的是每个 sheet 的第一行现在是列名。
如何在合并文件中保留原始列名?
合并后的文件中还有名为“文件”的新列,用于显示文件名,我也想将其删除。
任何帮助将不胜感激:)
编辑
示例:我 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
没有将其生成的数据帧的名称设置为输入文件的 headers。您可以使用 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")