如何将SQL内部与类似子句转换为dplyr工作流程



我有三个MySQL数据库表1-3。我的目标是使用R dplyr对这些表进行一些左和内连接操作。我正在尝试使用R中的dbplyr将我的原始SQL代码转换为Dplyr工作流程。

INNER JOIN table3 ON tabl1.well = table3.well AND table2.plex LIKE table3.set

到目前为止我的R代码看起来像:

library(RMySQL)
library(dbplyr)
library(dplyr)
t1 <- tbl(con,'table1')
t2 <- tbl(con,'table2')
t3 <- tbl(con,'table3')
st <- select(t2,set) %>% filter(!duplicated(set))
t1 %>% left_join(t2,.,by=c('d_id'='p_id') %>%
    inner_join(t3,by='well') %>%
    filter(plex %in% st) %>%      # this part is wrong!!
    collect()

运行上述R代码时,结果与SQL查询不同。我想知道什么是将SQL查询的内部连接部分转换为R中的dplyr语法的正确方法。两列上的简单inner_join在两个列上与dplyr相当扫描。但是我很难将部分转换为Dplyr Lingo。不幸的是,我没有任何可复制的数据。

dbplyr将保持原样的功能。换句话说,您可以将%like%操作员用作SQL喜欢的等效物。然后,您可以使用相同的外卡字符,因此类似:filter(name %like% "%text%")应该工作

最新更新