分享
三行代码  ›  专栏  ›  技术社区  ›  dobsonk2

如何只绑定数据帧列表中的某些元素

  •  0
  • dobsonk2  · 技术社区  · 6 天前

    df1 <- data.frame(date_time = c(1, 2, 3, 4, 5),
                      var1 = c('a', 'b', 'c', 'd', 'e'),
                      var2 = c(1, 1, 0, 0, 1))
    df2 <- data.frame(date_time = c(1, 2, 3, 4, 5),
                      var1 = c('a', 'b', 'c', 'd', 'e'),
                      var2 = c(1, 1, 0, 0, 1))
    df3 <- data.frame(date_time = c(1, 2, 3, 4, 5),
                      var1 = c('a', 'b', 'c', 'd', 'e'),
                      var2 = c(1, 1, 0, 0, 1))
    
    df.list <- list(df1=df1, df2=df2, df3=df3)
    

    我只想将列表中的df1和df2绑定在一起。在我的实际数据中,我将函数应用于整个数据帧列表,因此我不能简单地绑定原始的df1和df2数据帧。是否可以使用rbind从列表中提取df1和df2,并将它们绑定到一个新的数据帧中,同时仍然维护列表?

    使用R 3.5.1版Mac OS X 10.13.6

    1 回复  |  直到 6 天前
        1
  •  1
  •   Matt    6 天前

    您可以:

    df_bind <- rbind(df.list$df1, df.list$df2)
    

    这将为您提供一个数据帧:

     date_time var1 var2
    1          1    a    1
    2          2    b    1
    3          3    c    0
    4          4    d    0
    5          5    e    1
    6          1    a    1
    7          2    b    1
    8          3    c    0
    9          4    d    0
    10         5    e    1
    
        2
  •  0
  •   akrun    6 天前

    如果我们想得到多个列表元素, rbind 可用于 do.call 在将 list 元素

    do.call(rbind, df.list[1:2])