R-考虑到某些被调用的数据帧可能不存在,如何合并/绑定多个数据帧?

Dek*_*ike 5 merge r rbind

我必须在 R 中的迭代过程中绑定/合并数据帧。有时,某些数据帧可能不存在,原因我不会在此处解释。我想知道如何绑定数据帧,即使调用一些不存在的数据帧也是如此。作为一个例子,我有这些数据框:

df.R_H <- data.frame(A=c(0,4,5,6,7),
                  B=c(3,9,4,5,8),
                  C=c(1,2,4,2,6))

df.B_C <- data.frame(A=c(0,4,5,6,7),
                  B=c(3,9,4,5,8),
                  C=c(1,2,4,2,6))

df.G_H <- data.frame(A=c(0,4,5,6,7),
                  B=c(3,9,4,5,8),
                  C=c(1,2,4,2,6))
Run Code Online (Sandbox Code Playgroud)

但是,在我的代码中我有这个:

df5 <- rbind(df.R_H,df.B_C,df.G_H,df.R_C)
df5
Run Code Online (Sandbox Code Playgroud)

df.R_C尽管数据框不存在,但如何绑定数据框?我无法单独检查哪些数据帧存在或不存在,因为我有数百种这样的情况,并且即使某些数据帧不存在,我也想自动执行此操作。

Pau*_*ulS 3

另一种可能的解决方案:

library(tidyverse)

df.R_H <- data.frame(A=c(0,4,5,6,7),
                     B=c(3,9,4,5,8),
                     C=c(1,2,4,2,6))

df.B_C <- data.frame(A=c(0,4,5,6,7),
                     B=c(3,9,4,5,8),
                     C=c(1,2,4,2,6))

df.G_H <- data.frame(A=c(0,4,5,6,7),
                     B=c(3,9,4,5,8),
                     C=c(1,2,4,2,6))

map_dfr(list("df.R_H","df.B_C","df.G_H","df.R_C"), ~ if (exists(.x)) {get(.x)})

#>    A B C
#> 1  0 3 1
#> 2  4 9 2
#> 3  5 4 4
#> 4  6 5 2
#> 5  7 8 6
#> 6  0 3 1
#> 7  4 9 2
#> 8  5 4 4
#> 9  6 5 2
#> 10 7 8 6
#> 11 0 3 1
#> 12 4 9 2
#> 13 5 4 4
#> 14 6 5 2
#> 15 7 8 6
Run Code Online (Sandbox Code Playgroud)