R: Как визуализировать 5 лучших значений в данном столбце по регионам - PullRequest
0 голосов
/ 26 мая 2018

Это вопрос к тому, что я думал, было бы легкой задачей, но, тем не менее, я не смог обернуть голову вокруг.

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

Предположим, мои данные выглядят так, где у меня есть 8 значений для партнеров:

Partner <- c(A, B, C, D, E, F, G, A, A, B, B, C, D, E, G, G, H, I, F)
Region_Off <-c(AU, BE, CA, DK, EU, FR, GER, AU, AU , BE, BE, CA, DK, EU, 
GER, GER, HK, IR, FR)

Что я пытался сделать:

Top_Partners <- MY_df %>%
  count(Partner)%>%
  arrange(Partner) %>%
  arrange(n) %>%
  head(n=5) %>%
  facet_wrap(~ Region_Off)

И я пытался:

Top_Partners <- MY_df %>%
  select(Region_abb, Partner, Context)

dat2 <- as.data.frame(apply(Top_Partners, 2, function (x) sort(x, decreasing = TRUE)[1:5]))

Однако я не могу понять, как это сделать.региональный офис ...

И затем каким-то образом построить это, чтобы сделать гистограмму - хотя я не уверен, где построить функцию geom_bar в приведенном выше решении.

Я надеюсь, что кто-то может помочь мне уйти отсюда.

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Это отвечает только на вторую часть вопроса , чтобы составить гистограмму.

Код, используемый для агрегирования данных, - это код ответа @ nael_kl.

library(tidyverse)
library(ggplot2)

df3 <- df %>% 
  group_by(Region_Off) %>% 
  count(Partner) %>% 
  arrange(desc(n)) %>% 
  slice(1:5)

ggplot(df3, aes(Partner, n)) +
    geom_bar(stat = "identity") +
    facet_wrap(~ Region_Off)

enter image description here

0 голосов
/ 26 мая 2018

Трудно ответить на ваш вопрос, поскольку ваш пример не воспроизводим.Нам нужно подмножество MY_df и знать, что такое переменная Context.

Является ли следующий кадр данных тем, что вы пытаетесь получить?

set.seed(123)
df <- data_frame(
  Region_Off = sample(c("AU", "BE", "CA", "DK", "EU", "FR", "GER", "HK", "IR"), 500, replace = T),
  Partner = sample(LETTERS[1:8], 500, replace = T)
)

df %>% 
  group_by(Region_Off) %>% 
  count(Partner) %>% 
  arrange(desc(n)) %>% 
  slice(1:5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...