微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

非平等加入 tidyverse

如何解决非平等加入 tidyverse

我想知道是否有人知道 // 扩展包(dplyrdbplyr)是否允许在通常的 dplyr 工作流程中进行非对等连接?我很少需要 dtplyr,但快速非对等联接是我总是需要 data.table,然后执行联接,然后用 setDT 切换回来的唯一时刻。我浏览了 github 上软件包中的问题,但没有发现这是计划中的还是已经实施的。

解决方法

对于 dbplyr:虽然 SQL 支持非对等连接,但我还没有找到等效的 dplyr 方法。我通常的解决方法与@Waldi 发布的 r-bloggers 链接非常相​​似,用于加入等式条件,然后过滤不等式条件。

例如:

output = join(df1,df2,by = c("df1_id" = "df2_id")) %>%
  filter(df1_date <= df2_date)

这转化为 SQL 类似于:

SELECT *
FROM df1
JOIN df2
ON df1_id = df2_id
WHERE df1_date <= df2_date

与以下没有什么不同:

SELECT *
FROM df1
JOIN df2
ON df1_id = df2_id
AND df1_date <= df2_date
,

我喜欢 dplyr 的简单性。但是,我需要根据工作中的日期 >、

我发现您正在使用相同的方法。如果您的数据适中,我认为这是最好的。 dplyr 中的模糊连接和过滤方法都花费了太多时间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。