Построение сгруппированных переменных в линейном графике r - PullRequest
0 голосов
/ 11 марта 2020

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

Мои данные выглядят так

ISIN Date Ticker MarketSeg 1 BSP951331318 31-01-2010 UIE Medium 2 BSP951331318 28-02-2010 UIE Medium 3 BSP951331318 31-03-2010 UIE Medium 4 BSP951331318 30-04-2010 UIE Medium 5 BSP951331318 31-05-2010 UIE Medium 6 BSP951331318 30-06-2010 UIE Medium 7 BSP951331318 31-07-2010 UIE Medium 8 BSP951331318 31-08-2010 UIE Medium

Пока мой код выглядит следующим образом.

CombData <- CombData %>% group_by(Date) %>%
count(CombData$MarketSeg)
ggplot(data = CombData, aes(x=Date, y=, group=CombData$MarketSeg, color=CombData$MarketSeg))

Поэтому мне нужен способ подсчета суммы в каждом сегменте, сгруппированной по переменной даты, чтобы я мог вводить ее в переменную y, так как мой текущий код не работает с подсчетом

1 Ответ

1 голос
/ 11 марта 2020

Если я правильно понял, это должно дать вам то, что вы хотите (я думал, что проще добавить дополнительный столбец с данными подсчета):

CombData <- CombData %>% 
  group_by(Date, MarketSeg) %>%
  mutate(count_seg = n())

ggplot(data = CombData, aes(x=Date, y= count_seg, group=MarketSeg, color=MarketSeg)) +
  geom_line()

Данные:

structure(list(ISIN = c("BSP951331318", "BSP951331318", "BSP951331318", 
"BSP951331318", "BSP951331318", "BSP951331318", "BSP951331318", 
"BSP951331318"), Date = c("31.01.10", "28.02.10", "31.03.10", 
"30.04.10", "31.05.10", "30.06.10", "31.07.10", "31.08.10"), 
    Ticker = c("UIE", "UIE", "UIE", "UIE", "UIE", "UIE", "UIE", 
    "UIE"), MarketSeg = c("Medium", "Medium", "Medium", "Medium", 
    "Medium", "Medium", "Medium", "Medium"), count_seg = c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L)), class = c("grouped_df", "tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -8L), groups = structure(list(
    Date = c("28.02.10", "30.04.10", "30.06.10", "31.01.10", 
    "31.03.10", "31.05.10", "31.07.10", "31.08.10"), MarketSeg = c("Medium", 
    "Medium", "Medium", "Medium", "Medium", "Medium", "Medium", 
    "Medium"), .rows = list(2L, 4L, 6L, 1L, 3L, 5L, 7L, 8L)), row.names = c(NA, 
-8L), class = c("tbl_df", "tbl", "data.frame"), .drop = TRUE))

Надеюсь, это поможет!

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