从SQL转换为R

时间:2019-05-23 05:08:22

标签: r tidyverse

我目前有以下SQL查询:

SELECT sector, COUNT(sector) 
FROM clients
GROUP BY sector
ORDER BY COUNT(sector) DESC LIMIT 3;

因此,我试图从SQL Developer迁移到 tidyverse ,但是在尝试运行某些序列时遇到了困难,因为显然这并不那么简单(或至少对我而言)。

所以我想知道是否有人可以帮助我。

这只是单个表中的基本查询,我必须在其中查看某个部门的客户数量

R中的等效值是什么?

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

sqldf库(如果您对其开放的话)实际上会让您继续使用SQL语法:

library(sqldf)

sql <- "SELECT sector, COUNT(sector) 
        FROM clients
        GROUP BY sector
        ORDER BY COUNT(sector) DESC LIMIT 3"
result <- sqldf(sql)

sqldf软件包默认情况下在后台运行SQLite,尽管您可以根据需要更改为其他数据库风格。如果您必须将大量SQL逻辑移植到R,但您不​​希望冒用tidyverse,R或其他软件包重写所有内容的风险,则此建议对您而言可能有意义。

答案 1 :(得分:2)

对于tidyverse,这可以通过以count的降序获得{扇区} arrange的频率desc和频率列'n'以及{{1 }}前3行

slice

数据

library(tidyverse)
clients %>%
   count(sector) %>%
   arrange(desc(n)) %>%
   slice(1:3)