R: Рассчитать процент значений столбца во временном ряду - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть набор данных, который выглядит следующим образом:

Connection    Account.Created.Month
Wired        12
Wired        12       
Wireless     13
Wired        13

Я хочу создать график, который показывает для каждого месяца, какой процент соединений был проводным и беспроводным. Например, с данными выше это будет 100% проводной для 12-го месяца и 50% проводной для 13-го месяца.

Вот мой код построения:

ea1wirelessUsed <- aggregate(data_ea1$Connection, list(Mon = data_ea1$Account.Created.Month), mean)

pea1 <- ggplot(ea1wirelessUsed, aes(x=Mon, y=x, fill=Mon)) + 
  geom_col() +
  ylab("Wired vs Wireless") +
  xlab("Time")
grid.arrange(pea1)

Я не уверен что передать для значения x, чтобы показать агрегированный% проводного и беспроводного соединения.

Спасибо за помощь.

1 Ответ

2 голосов
/ 07 февраля 2020

Вот решение с использованием пакета tidyverse. Я сделал count, чтобы получить данные в правильном формате для построения графика.

library(tidyverse)

data_ea1 %>%
  #Group by both vars
  group_by(Connection,Accoun.Created.Month) %>%
  #Count the number of connections by grouping variables
  count() %>%
  #Make the plot
  ggplot(aes(x=Accoun.Created.Month, 
             y=n, 
             fill=Connection)) + 
  geom_col(position = "fill") +
  scale_y_continuous(labels = scales::percent) +
  labs(y = "Percent", x = "Month")

Plot

...