将数据框与列表中的所有数据帧组合在一起

时间:2014-08-28 07:53:16

标签: r list dataframe

我有一个数据框列表。列表中的所有数据帧都具有相同的变量。我在列表的外面有另一个数据框。该数据框也具有相同的变量。如何将列表中不存在的数据框与列表中的所有单个数据帧组合在一起?

实施例: 在列表my_list中,有一些数据框df1, df2, df3等。 不在列表中的是另一个数据框dfX。所有数据帧都具有相同的变量。如何将dfXmy_list中的全部 df组合在一起。 dfX应复制并添加到my_list中的所有数据框。

我想我需要一个for looprbind,但我似乎无法做到正确。我不习惯使用列表(一般来说R很新)。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

创建一些虚拟数据:

foo <- list(df1=data.frame(A=rnorm(3),B=rnorm(3)),
    df2=data.frame(A=rnorm(3),B=rnorm(3)),
    df3=data.frame(A=rnorm(3),B=rnorm(3)))
dfX <- data.frame(A=rnorm(3),B=rnorm(3))

然后使用lapply()

lapply(foo,function(xx)rbind(xx,dfX))

答案 1 :(得分:1)

另一种选择是(@Stephan Kolassa的数据)

  Map(`rbind`, foo,list(dfX))

测试结果

 res1 <- lapply(foo,function(xx)rbind(xx,dfX))
 res2 <-  Map(`rbind`, foo,list(dfX))
 identical(res1, res2)
 #[1] TRUE