我目前有以下SQL查询:
SELECT sector, COUNT(sector)
FROM clients
GROUP BY sector
ORDER BY COUNT(sector) DESC LIMIT 3;
因此,我试图从SQL Developer迁移到 tidyverse ,但是在尝试运行某些序列时遇到了困难,因为显然这并不那么简单(或至少对我而言)。
所以我想知道是否有人可以帮助我。
这只是单个表中的基本查询,我必须在其中查看某个部门的客户数量。
R中的等效值是什么?
有人可以帮助我吗?
答案 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)