dplyr 是否有纯 sql() 运算符?

jav*_*dba 1 r dplyr

我想dplyr与纯混合使用sql。的理由是,我一般喜欢sqldsl提供的通过dplyr; 但是mutate()动词很有用。所以工作流可能看起来像

result =  my.df >%> sql("select max(a) a_max,b,c [from X ?] 
                  where b in ('b1','b2) group by b,c
                  having count(1) > 1 
                  order by a desc, b") 
               >%> mutate(c = c * 100) 
               >%> sql("select a_max,b,c from X order by 1 desc, 3 desc")
Run Code Online (Sandbox Code Playgroud)

注意:这不是关于使用dslvs优点的辩论sql:这可能是一个冗长而微妙的辩论,并且两者都有可靠的理由。我怀疑要获得所请求的内容,需要挖掘github专门为此设计的存储库,但想检查我是否错过了内部dplyr或更广泛的某些功能tidy-verse

另一个注意事项:dplyr我与一位非常熟练的用户一起工作。我不想打断/改变他的流程。我希望能够在dplyr工作流链的中间插入 sql,因为我可以轻松编写复杂的多级嵌套查询 - 并且比dplyrdsl快得多。

Rya*_*ohn 5

试试看tidyquery包装。链接:https : //cran.r-project.org/web/packages/tidyquery/index.html作者:Ian Cook

例子:

planes %>%
  filter(engine == "Turbo-fan") %>%
  query("SELECT manufacturer AS maker, COUNT(*) AS num_planes GROUP BY maker") %>%
  arrange(desc(num_planes)) %>%
  head(5)

#> # A tibble: 5 x 2
#>   maker            num_planes
#>   <chr>                 <int>
#> 1 BOEING                 1276
#> 2 BOMBARDIER INC          368
#> 3 AIRBUS                  331
#> 4 EMBRAER                 298
#> 5 AIRBUS INDUSTRIE        270
Run Code Online (Sandbox Code Playgroud)