我必须在 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尽管数据框不存在,但如何绑定数据框?我无法单独检查哪些数据帧存在或不存在,因为我有数百种这样的情况,并且即使某些数据帧不存在,我也想自动执行此操作。
另一种可能的解决方案:
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)