semi_join 和 anti_join 函数创建 dtplyr 对象而不是数据框

问题描述

所以我正在从事一个项目,该项目要求我将数据帧与来自 d​​plyr 的 semi_join 和 anti_join 结合起来。但是,我没有创建 data.frame 作为输出,而是得到了一个无法使用的 dtplyr_step_subset 对象,我不知道它是如何工作的。 (请注意,这仅发生在我更新了 tidyverse 包之后)是否有一些关于修复此问题的连接函数的论据?

解决方法

如果没有 reproducible example,很难确定。但我最好的猜测是它可能使用了来自 semi_joindtplyr,它会给你一个 data.table。通常,为了避免来自不同包的重叠函数,我建议为函数指定包。因此,您将使用 dplyr::semi_join()dplyr::anti_join()。此外,如果您不需要 dtplyr,那么您可以随时通过 detach("package:dtplyr",unload=TRUE) 分离它。