【问题标题】:How to bind only certain elements in a list of data frames如何仅绑定数据框列表中的某些元素
【发布时间】:2020-06-29 18:27:00
【问题描述】:

我有一个包含许多数据框的列表,但我只想将其中的几个绑定到一个新的数据框中。这是一些类似于我正在做的模拟数据:

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

【问题讨论】:

  • 你能显示预期的输出吗?

标签: r dataframe


【解决方案1】:

你可以这样做:

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】:

如果我们想要获得多个列表元素,rbind 可以在子集list 元素后与do.call 一起使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2019-09-10
    • 2021-11-16
    相关资源
    最近更新 更多