код для запроса таблицы и получения сгруппированного кода страны и графика гистограммы - PullRequest
0 голосов
/ 25 апреля 2019

Я новичок в R, и мне удалось подключить R к базе данных в PostgreSQL, поэтому я хочу запросить эту базу данных в R и получить простую линейчатую диаграмму.Этот гистограмма должна содержать совокупное количество 5 лучших кодов стран.

Может кто-нибудь предложить запрос / скрипт, который бы сделал именно это?

в основном это разбивка по странам, и сколько людей в каждой стране.

Я хочу разбить свои данные на страны, а затем на пятерку этих стран

извините, мои данные выглядят примерно так

код страны
ГБ

NL

США

ГБ

ГБ

NA

FR

Я хочу посчитать, сколько из каждого, а затем построить топ-5 из них, как вы делаете это в R

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Вот общий обзор того, как я могу подключиться и запросить:

library(RPostgreSQL)
library(tidyverse)

pg <- dbDriver("PostgreSQL")

con <- dbConnect(pg, user = "username", password = "your_password",
                 host="localhost", port = 5432, dbname = "dbname")

tbl(con, "table_name") %>% 
  group_by(country_code) %>% 
  summarise(total = n()) %>% 
  arrange(desc(total)) %>% 
  head(5) %>% 
  collect() %>% 
  as_tibble() %>% 
  ggplot(aes(reorder(country_code, -total), total)) +
  geom_bar(stat = "identity")
1 голос
/ 25 апреля 2019

Я пошел на ногу и предположил, что Ою нужны 5 лучших стран с наибольшим количеством инцидентов.

В следующий раз, пожалуйста, опубликуйте ваши воспроизводимые данные, см. Dput ()

Код

library(tidyverse)
df %>%
  group_by(countries) %>% 
  summarise(sum_incidents = sum(incidents)) %>%
  top_n(5) %>% 
  ggplot() +
  aes(x = fct_reorder(countries,sum_incidents,.desc = TRUE), y = sum_incidents) +
  geom_col()

Данные

incidents <- floor(runif(104, min=0, max=101))

countries <- rep(letters,4)

df <- tibble(incidents,countries)
...