My data data represents monthly sales of 3 different product (A,B and C) from 2018
structure(list(Time = c("January 2018", "January 2018", "January 2018",
"February 2018", "February 2018", "February 2018", "March 2018",
"March 2018", "March 2018", "April 2018", "April 2018", "April 2018",
"May 2018", "May 2018", "May 2018", "June 2018", "June 2018",
"June 2018", "July 2018", "July 2018", "July 2018", "August 2018",
"August 2018", "August 2018", "September 2018", "September 2018",
"September 2018", "October 2018", "October 2018", "October 2018",
"November 2018", "November 2018", "November 2018", "December 2018",
"December 2018", "December 2018", "January 2019", "January 2019",
"January 2019", "February 2019", "February 2019", "February 2019",
"March 2019", "March 2019", "March 2019", "April 2019", "April 2019",
"April 2019", "May 2019", "May 2019", "May 2019", "June 2019",
"June 2019", "June 2019", "July 2019", "July 2019", "July 2019",
"August 2019", "August 2019", "August 2019", "September 2019",
"September 2019", "September 2019", "October 2019", "October 2019",
"October 2019", "November 2019", "November 2019", "November 2019",
"December 2019", "December 2019", "December 2019", "January 2020",
"January 2020", "January 2020", "February 2020", "February 2020",
"February 2020", "March 2020", "March 2020", "March 2020", "April 2020",
"April 2020", "April 2020", "May 2020", "May 2020", "May 2020",
"June 2020", "June 2020", "June 2020", "July 2020", "July 2020",
"July 2020", "August 2020", "August 2020", "August 2020", "September 2020",
"September 2020", "September 2020", "October 2020", "October 2020",
"October 2020", "November 2020", "November 2020", "November 2020",
"December 2020", "December 2020", "December 2020"), Category = c("A",
"B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B",
"C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C",
"A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A",
"B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B",
"C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C",
"A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A",
"B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B",
"C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C",
"A", "B", "C"), Sales = c(10222332, 7942779, 725555250, 6375699,
2875550, 440631801, 8864571, 12334681, 629036931, 7473920, 9161918,
659864891, 10047537, 8466945, 687218719, 8980204, 9829918, 612005973,
10301078, 8539884, 626423889, 11668052, 9367543, 652252806, 10374909,
7755942, 543875760, 14635624, 4343942, 561692585, 13560795, 5791480,
532812769, 12662526, 3759661, 555013915, 15786646, 3853641, 626093690,
9505737, 5993417, 351970315, 16938873, 13168685, 600298206, 10827490,
10334899, 723990224, 14967314, 7270579, 631821347, 14495324,
6507689, 533818484, 13449295, 7678789, 535126612, 17214970, 5880437,
564680477, 12970874, 4965748, 557062440, 15750730, 8085819, 600121430,
18948080, 6057461, 592022480, 16238799, 6148273, 629364277, 12143876,
4314784, 451238348, 5354879, 5703890, 460174095, 5430258, 5204303,
670928810, 7591477, 7459831, 636383634, 5387797, 8551921, 535302293,
7103341, 8104402, 518039675, 7411340, 9247334, 466740767, 7815582,
8410930, 554147105, 9270913, 7991272, 539793655, 13351559, 8675692,
559303077, 10258273, 6158217, 550218658, 11708049, 13333011,
578068296)), class = c("grouped_df", "tbl_df", "tbl", "data.frame"
), row.names = c(NA, -108L), groups = structure(list(Time = c("April 2018",
"April 2018", "April 2018", "April 2019", "April 2019", "April 2019",
"April 2020", "April 2020", "April 2020", "August 2018", "August 2018",
"August 2018", "August 2019", "August 2019", "August 2019", "August 2020",
"August 2020", "August 2020", "December 2018", "December 2018",
"December 2018", "December 2019", "December 2019", "December 2019",
"December 2020", "December 2020", "December 2020", "February 2018",
"February 2018", "February 2018", "February 2019", "February 2019",
"February 2019", "February 2020", "February 2020", "February 2020",
"January 2018", "January 2018", "January 2018", "January 2019",
"January 2019", "January 2019", "January 2020", "January 2020",
"January 2020", "July 2018", "July 2018", "July 2018", "July 2019",
"July 2019", "July 2019", "July 2020", "July 2020", "July 2020",
"June 2018", "June 2018", "June 2018", "June 2019", "June 2019",
"June 2019", "June 2020", "June 2020", "June 2020", "March 2018",
"March 2018", "March 2018", "March 2019", "March 2019", "March 2019",
"March 2020", "March 2020", "March 2020", "May 2018", "May 2018",
"May 2018", "May 2019", "May 2019", "May 2019", "May 2020", "May 2020",
"May 2020", "November 2018", "November 2018", "November 2018",
"November 2019", "November 2019", "November 2019", "November 2020",
"November 2020", "November 2020", "October 2018", "October 2018",
"October 2018", "October 2019", "October 2019", "October 2019",
"October 2020", "October 2020", "October 2020", "September 2018",
"September 2018", "September 2018", "September 2019", "September 2019",
"September 2019", "September 2020", "September 2020", "September 2020"
), Category = c("A", "B", "C", "A", "B", "C", "A", "B", "C",
"A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A",
"B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B",
"C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C",
"A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A",
"B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B",
"C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C",
"A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A",
"B", "C", "A", "B", "C", "A", "B", "C"), .rows = structure(list(
10L, 11L, 12L, 46L, 47L, 48L, 82L, 83L, 84L, 22L, 23L, 24L,
58L, 59L, 60L, 94L, 95L, 96L, 34L, 35L, 36L, 70L, 71L, 72L,
106L, 107L, 108L, 4L, 5L, 6L, 40L, 41L, 42L, 76L, 77L, 78L,
1L, 2L, 3L, 37L, 38L, 39L, 73L, 74L, 75L, 19L, 20L, 21L,
55L, 56L, 57L, 91L, 92L, 93L, 16L, 17L, 18L, 52L, 53L, 54L,
88L, 89L, 90L, 7L, 8L, 9L, 43L, 44L, 45L, 79L, 80L, 81L,
13L, 14L, 15L, 49L, 50L, 51L, 85L, 86L, 87L, 31L, 32L, 33L,
67L, 68L, 69L, 103L, 104L, 105L, 28L, 29L, 30L, 64L, 65L,
66L, 100L, 101L, 102L, 25L, 26L, 27L, 61L, 62L, 63L, 97L,
98L, 99L), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -108L), .drop = TRUE))
1 January 2018 A 10222332
2 January 2018 B 7942779
.....................................
106 December 2020 A 11708049
107 December 2020 B 13333011
108 December 2020 C 578068296
Now I want to do time series decomposition using stl()
function. So I subset category 'A' and put it into the function
library(tidyverse)
library(highcharter)
# Subset data for category A
df.A <- subset(data, Category =="A")
#convert data into Time series
TS.A <- ts(df.A$Sales, frequency = 12, start = c(2018, 1))
TS.A <- TS.A %>%
stl(s.window="periodic", robust=TRUE)`
hchart(TS.A)
Now I want to create an RMarkdown with dynamic plots. So instead of subseting each Category (A,B,C) separetely, let user choose it from the drop-down list and adapt output according to chosen input. I know it is possible in shiny, but I want to somehow implement this dynamic plot into Html (rmarkdown) document. Something like this: