You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言合并Excel多工作表数据并新增因子标记变量问题咨询

R语言实现方案

方案1:已完成合并的情况下直接赋值

如果你的三个原始数据集顺序与rbind时的拼接顺序完全一致,可直接按各数据集的行数生成因子列:

# 假设三个原始数据集名为df1、df2、df3,合并后的数据框名为merged_df
# 此前rbind的拼接顺序为 rbind(df1, df2, df3)
merged_df$source <- factor(
  rep(c("工作表1名称", "工作表2名称", "工作表3名称"), 
      c(nrow(df1), nrow(df2), nrow(df3)))
)

注意:rep中的工作表顺序必须和你之前rbind拼接数据集的顺序完全匹配,否则会出现来源对应错误

方案2:合并前添加来源列(更稳妥,推荐)

合并前先给每个单独的数据集加上来源标识,再拼接,完全避免顺序匹配错误的问题:

# 给每个原始数据集添加因子类型的来源列
df1$source <- factor("工作表1名称")
df2$source <- factor("工作表2名称")
df3$source <- factor("工作表3名称")

# 重新合并得到带来源标识的数据集
merged_df <- rbind(df1, df2, df3)

拓展方案:批量导入+自动加来源列

如果后续还要处理类似多工作表的Excel文件,可以直接用批量导入的方式一步完成,不需要单独读取三个工作表再拼接:

library(readxl)
library(purrr)
library(dplyr)

# 读取Excel内所有工作表名称
sheet_names <- excel_sheets("你的Excel文件路径.xlsx")

# 批量导入所有工作表,同时自动添加以工作表名为水平的来源因子列
merged_df <- map_dfr(sheet_names, 
                     ~ read_excel("你的Excel文件路径.xlsx", sheet = .x) %>% 
                       mutate(source = factor(.x)))

内容的提问来源于stack exchange,提问作者Lixae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:54:00