使用数据框名称作为列名称

时间:2014-09-02 17:05:26

标签: r dataframe

我使用rbind将多个数据帧附加到更大的数据帧中。我想将数据框的名称添加为新列," name"。

n = c(2, 3, 5) 
s = c("aa", "bb", "cc") 
d1 = data.frame(n, s)     

n = c(2, 3, 5) 
s = c("ax", "bx", "cx") 
d2 = data.frame(n, s)

rbind(d1, d2)

我希望看到一个新的专栏" d1"和" d2"作为变量。我在很多数据集上都这样做,所以尽管这个例子很简单,但最终的prdoct会为我节省很多时间。 THX

1 个答案:

答案 0 :(得分:0)

我相信你一直在寻找好的东西。这里有deparse(substitute())招数。我在下面修改了您的代码,为每个data.frame添加了一个额外的列,其中只包含data.frame本身的名称。

n = c(2, 3, 5)
s = c("aa", "bb", "cc")
d1 = data.frame(n, s)
d1$name <- deparse(substitute(d1))

n = c(2, 3, 5)
s = c("ax", "bx", "cx")
d2 = data.frame(n, s)
d2$name <- deparse(substitute(d2))

d3 <- rbind(d1, d2)

将它们合并在一起时,生成的data.frame看起来像

!> d3
   n  s name
 1 2 aa   d1
 2 3 bb   d1
 3 5 cc   d1
 4 2 ax   d2
 5 3 bx   d2
 6 5 cx   d2