【问题标题】:Combine data frame with all the data frames in a list将数据框与列表中的所有数据框合并
【发布时间】:2014-10-22 00:08:33
【问题描述】:

我有一个数据框列表。列表中的所有数据框都具有相同的变量。我在列表之外还有另一个数据框。该数据框也具有相同的变量。如何将列表中没有的数据框与列表中的所有单个数据框合并?

示例: 在列表my_list 中有一些数据框df1, df2, df3 等。 列表中没有另一个数据框dfX。所有数据框都具有相同的变量。如何将dfXmy_list 中的 所有 df 结合起来。 dfX 应该复制并添加到my_list 中的所有数据帧中。

我想我需要for looprbind,但我似乎无法正确处理。我不习惯使用列表(通常对 R 来说很新)。谁能帮帮我?

【问题讨论】:

    标签: r list dataframe


    【解决方案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
    

    【讨论】:

      【解决方案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))
      

      【讨论】:

      • 简单的解决方案,正如我所料。谢谢
      猜你喜欢
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 2015-04-18
      • 2014-07-10
      相关资源
      最近更新 更多