#r
Вопрос:
У меня есть фрейм данных, который выглядит примерно так:
set.seed(42) ## for sake of reproducibility
n <- 6
dat <- data.frame(date=seq.Date(as.Date("2020-12-26"), as.Date("2020-12-31"), "day"),
category=rep(LETTERS[1:4], n/2),
daily_count=sample(18:100, n, replace=TRUE)
)
dat
# date category daily_count
#1 2020-12-26 A 60
#2 2020-12-27 B 32
#3 2020-12-28 C 39
#4 2020-12-29 D 75
#5 2020-12-30 A 25
#6 2020-12-31 B 53
#7 2020-12-26 C 60
#8 2020-12-27 D 32
#9 2020-12-28 A 39
#10 2020-12-29 B 75
#11 2020-12-30 C 25
#12 2020-12-31 D 53
Я пытаюсь реализовать анализ точек изменения для каждой категории и отобразить результаты на одном графике (фасете). Я хочу, чтобы дата на оси x и daily_count на оси y и название категории в верхнем центре каждого графика. Тем не менее, я использую следующий код для выполнения этой работы
for (i in 1:length(unique(dat$category))){
cat_name <- unique(dat$category)[i]
df_change = dat[dat$category == cat_name,]
ansvar = cpt.var(df_change$daily_count)
plot(ansvar)
}
И это дает мне аналогичные графики, как показано ниже (они вычисляются на основе фактических данных):