【发布时间】:2020-11-17 20:14:28
【问题描述】:
我有许多数据框想要连接在一起。问题是其中一些有时可能是空的,这会产生错误消息
例如,如果 df3 为空
rbind(df1, df2, df3)
给出错误信息
错误:找不到对象“df3”
如何让 rbind 忽略空数据帧,只绑定存在的数据帧。 感谢您的帮助。
【问题讨论】:
我有许多数据框想要连接在一起。问题是其中一些有时可能是空的,这会产生错误消息
例如,如果 df3 为空
rbind(df1, df2, df3)
给出错误信息
错误:找不到对象“df3”
如何让 rbind 忽略空数据帧,只绑定存在的数据帧。 感谢您的帮助。
【问题讨论】:
我们可以将数据集加载到list 并使用bind_rows。优点是只有那些在全局环境中创建的数据集才会被加载
library(dplyr)
mget(ls(pattern ='^df\\d+$')) %>%
bind_rows
或者另一种选择是使用exists 创建一个条件
do.call(rbind, lapply(paste0("df", 1:3), function(x)
if(exists(x, .GlobalEnv)) get(x) else NULL))
【讨论】: