r,在data.frame中添加一列

时间:2013-07-12 10:50:36

标签: r dataframe

我有三个数据集。

设置1:

   A    B
  23   12
  34   81
  13   45
  11   23

设置2:

   A    B 
 .34    1.1
 .5     2.0
 .4     1.8

设置3:

   A    B
  -23   5
  -3    0.1
  .8    -2.3
  -.6   1.4
  4     3.2

现在我必须创建一个数据框,如下所示:

   A     B    Type
   23    12   1
   34    81   1
    .
    .
    .
   11    23   1
  .34   1.1   2
   .5   2.0   2
   .4   1.8   2
  -23   5     3
    .
    .
    .
    4   3.2   3

我的尝试:

   set1 <- data.frame(A=c(23,34,13,11),B=c(12,81,45,23)) 
   set2 <- data.frame(A=c(.34,.5,.4),B=c(1.1,2,1.8))
   set3 <- data.frame(A=c(-23,-3,.8,-.6,4),B=c(5,.1,-2.3,1.4,3.2))

   dat123 <- rbind(set1,set2,set3)

但我无法添加列Type

2 个答案:

答案 0 :(得分:5)

像这样:

l <- list(set1, set2, set3)
do.call(rbind, Map(data.frame, l, type = seq_along(l)))

答案 1 :(得分:3)

set1 <- data.frame(A=c(23,34,13,11),B=c(12,81,45,23)) 
set2 <- data.frame(A=c(.34,.5,.4),B=c(1.1,2,1.8))
set3 <- data.frame(A=c(-23,-3,.8,-.6,4),B=c(5,.1,-2.3,1.4,3.2))

Type=rep(c(1,2,3), times=c(nrow(set1), nrow(set2), nrow(set3)))
dat123 <- cbind(rbind(set1,set2,set3), Type)