【问题标题】:How to rbind all the data.frames in your working environment?如何 rbind 工作环境中的所有 data.frames?
【发布时间】:2016-05-25 01:37:25
【问题描述】:

我的工作环境中有超过 50 个 data.frames 我想rbind。有没有办法rbind data.frames 而不必输入每个 date.frame

我一直在做的例子:

df <- rbind(A, B, C, D, E, F)

我试过了:

df <- rbind(ls())

但这只是在我的工作环境中创建了所有 data.frames 的名称列表。

【问题讨论】:

    标签: r dataframe rbind


    【解决方案1】:

    您可以搜索data.frame类的对象,并使用函数mget检索它们。

    a = b = c = data.frame(x=1:2, y=3, z=1:4)
    d = "junk"
    e = list(poo="pah")
    ls()
    # [1] "a" "b" "c" "d" "e"
    dfs = sapply(.GlobalEnv, is.data.frame) 
    dfs
    #    a     b     c     d     e 
    # TRUE  TRUE  TRUE FALSE FALSE 
    do.call(rbind, mget(names(dfs)[dfs]))
    #     x y z
    # a.1 1 3 1
    # a.2 2 3 2
    # a.3 1 3 3
    # a.4 2 3 4
    # b.1 1 3 1
    # b.2 2 3 2
    # b.3 1 3 3
    # b.4 2 3 4
    # c.1 1 3 1
    # c.2 2 3 2
    # c.3 1 3 3
    # c.4 2 3 4 
    

    【讨论】:

    • 我和你在一起直到最后一个do.call 部分然后我收到一条错误消息Error: value for ‘x1’ not found。有什么建议吗?
    • @DavidPell ;抱歉,我没有在现场。很难说发生了什么。您能否创建一个示例,类似于我在答案中所做的那样,来显示您的问题。
    猜你喜欢
    • 2019-12-07
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多