Создайте график месячной линии тренда с количеством значений в виде переменной y - PullRequest
0 голосов
/ 24 января 2020

У меня есть приведенный ниже кадр данных:

name<-c("John","John","John","John2","John2","John2")
Dealer<-c("ASD","ASD","ASD","ASDG","ASDF","ASD")
Date<-c("2020-01-03","2020-01-04","2020-01-05","2020-02-03","2020-02-04","2020-02-05")
dataset<-data.frame(name,Dealer,Date)

, и я хочу ежемесячную визуализацию тренда для счета name, фильтруемого по Dealer.

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

library(ggplot2)
ggplot(dataset, aes(x = Date, y = , color = Dealer)) +
  geom_line() +
  scale_x_date(date_breaks = "1 months", date_labels = "%b '%y") +
  theme_minimal()

* отредактированный фрейм данных с набором данных, в котором все значения одинаковы в name и Dealer

name<-c("John","John","John","John","John","John","John")
Dealer<-c("ASD","ASD","ASD","ASD","ASD","ASD","ASD")
Date<-c("2020-01-03","2020-01-04","2020-01-05","2020-01-06","2020-01-07","2020-01-08","2020-01-09")
dataset<-data.frame(name,Dealer,Date)

1 Ответ

0 голосов
/ 24 января 2020

Может быть что-то вроде этого:

library(tidyverse); library(lubridate)
dataset %>%
  # Convert "Date" into date form
  mutate(Date = ymd(Date)) %>%
  # Count how many occasions of each name-Dealer-month combo
  count(name, Dealer, month = floor_date(Date, "month")) %>%
  # Add rows for missing months for each existing name-Dealer combo
  complete(month, nesting(name, Dealer), fill = list(n = 0)) %>%

  ggplot(aes(month, n, color = name)) +
  geom_line() +
  scale_x_date(date_breaks = "1 months", date_labels = "%b\n'%y") +
  theme_minimal() +
  facet_wrap(~Dealer)

enter image description here

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