如何在r中组合两个数据帧,以便生成的数据帧有一个新列,指示原始数据帧?

时间:2015-05-11 22:56:04

标签: r dataframe

假设我有两个数据框,df1和df2,它们包含相同的列标题,以便

df1 = 
price size
10    40

df2 = 
price size
20    50

我想合并这两个数据帧,以便生成数据框, 价格尺寸来源

10 40 df1
20 50 df2

思想?

2 个答案:

答案 0 :(得分:2)

我看到的最简单的方法,(如果你有许多数据集称为df +一些数字 - 虽然你也可以选择其他一些正则表达式模式)是从全局环境中获取它们并使用{ {1}}组合

do.call/rbind

如果您希望原点是列而不是行名,则可以直接执行

res <- do.call(rbind, mget(ls(pattern = "^df\\d+$")))
res
#     price size
# df1    10   40
# df2    20   50

答案 1 :(得分:1)

您也可以

library(tidyr)
unnest(mget(paste0('df', 1:2)), origin)
#    origin price size
#1   df1    10   40
#2   df2    20   50