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

如何让dplyr::bind_rows()的.id列显示data.frame变量名而非数字?

实现bind_rows合并时显示数据框变量名作为来源标识

要让bind_rows()的.id列显示数据框的变量名,只需要把要合并的数据框放在命名列表中传递给函数即可,bind_rows会自动将列表的名称作为source列的值。

方法1:手动构建命名列表

直接用list()创建命名列表,键名设置为数据框的变量名:

library(dplyr)

df1 <- data.frame(x = c(1,2,3), y = c(4,5,6))
df2 <- data.frame(x = c(7,8,9), y = c(10,11,12))

bind_rows(list(df1 = df1, df2 = df2), .id = 'source')

运行结果:

#>   source x  y
#> 1    df1 1  4
#> 2    df1 2  5
#> 3    df1 3  6
#> 4    df2 7 10
#> 5    df2 8 11
#> 6    df2 9 12

方法2:用dplyr::lst()简化代码

dplyr的lst()函数会自动将变量名作为列表的键名,写法更简洁,无需手动重复输入变量名:

bind_rows(lst(df1, df2), .id = 'source')

该写法和方法1的效果完全一致,尤其适合合并多个数据框的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:25:07