Перевод с SQL на R - PullRequest
       13

Перевод с SQL на R

2 голосов
/ 23 мая 2019

В настоящее время у меня есть следующий запрос SQL:

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

Итак, я пытаюсь перейти на tidyverse из SQL Developer, но у меня возникают трудности при попытке запустить определенные последовательности, потому что, очевидно, это не так просто (или не я по крайней мере).

Так что мне было интересно, сможет ли кто-нибудь мне помочь.

Это просто базовый запрос из отдельной таблицы , в котором мне нужно увидеть сколько клиентов в определенном секторе .

Что эквивалентно в R?

Кто-нибудь может мне помочь, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 23 мая 2019

С tidyverse это может быть достигнуто путем получения частоты count сектора 'arrange столбца частоты' n 'в desc порядке окончания и slice первых 3 строк

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

данные

set.seed(24)
clients <- data.frame(sector = sample(letters[1:10], 50, 
          replace = TRUE), val = rnorm(50))
2 голосов
/ 23 мая 2019

Библиотека 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, base R или другой пакет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...