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

使用dplyr合并变量相同的两个数据框并生成分组标识变量的最简实现方法

使用dplyr合并数据框并添加分组标识的最简方法

这题用dplyr的bind_rows()配合.id参数就能一步解决,绝对是最简洁的方案了!

先还原你的数据创建代码:

dfA <- c('y','x','z')
dfB <- c(345, 443, 123)
a <- data.frame(dfA,dfB)
b <- data.frame(dfA,dfB)

核心合并代码就一行:

library(dplyr)

# 合并并自动生成group列
combined_df <- bind_rows(a = a, b = b, .id = "group")

默认得到的结果是先显示a的所有行,再显示b的所有行:

dfA dfB group
1   y 345     a
2   x 443     a
3   z 123     a
4   y 345     b
5   x 443     b
6   z 123     b

如果想要严格匹配你给出的按dfA分组交替显示a和b的顺序,只需要再加一步排序:

combined_df <- bind_rows(a = a, b = b, .id = "group") %>% 
  arrange(dfA, group)

这样就能得到和你示例完全一致的输出:

dfA dfB group
1   y 345     a
2   y 345     b
3   x 443     a
4   x 443     b
5   z 123     a
6   z 123     b

为什么这是最简方案?

bind_rows()的.id参数就是专门为这种场景设计的:当你传入命名的数据框(比如这里的a = a和b = b),它会自动把每个数据框的名字作为group列的取值,不需要先给a、b手动添加group列再合并,省掉了额外的步骤,代码简洁又直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:17:37