Ошибка в mutate_impl (.data, dots): Ошибка оценки: для индекса класса Date допускаются только периоды года, квартала, месяца, недели и дня. - PullRequest
0 голосов
/ 09 мая 2018

Я использую пакет Anomalize для обнаружения аномалий, но я получаю упомянутую ошибку, хотя я определил Date как индекс:

Пример кода:

x <- as.data.frame(data %>%
  group_by(date,acc_id) %>%
  summarise(count = as.numeric(n_distinct(d_id))) %>%
  ungroup())

x$acc_id <- as.character(x$acc_id)

x <- x %>% 
  tibbletime::as_tbl_time(index = date)


x %>%
  time_decompose(count, method = "twitter", trend = "2 months") %>%
  anomalize(remainder, method = "gesd") %>%
  time_recompose() %>%
  plot_anomalies(time_recomposed = TRUE)

Ошибка:

Ошибка в mutate_impl (.data, точки): Ошибка оценки: только год, периоды квартала, месяца, недели и дня допускаются для индекса Дата урока.

dput(head(x))

structure(list(date = structure(c(17532, 17532, 17532,  17532, 17532, 17532), class = "Date"), acc_id = c("a44444",  "gg555", "0195459b-5809-4b54-89b5-1a4376c9f126",  "ggg6546", "hhjh77",  "hhjh68777"), count = c(3, 1, 1, 1,  1, 1)), .Names = c("date", "acc_id", "count"), row.names = c(NA, 
-6L), class = c("tbl_time", "tbl_df", "tbl", "data.frame"), index_quo = ~date, index_time_zone = "UTC")

У меня есть цель сгруппировать по дате, а некоторые другие факторы не связаны с датой.

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

У меня была такая же проблема. Что помогло мне, так это правильно определить формат вашей даты:

library(tibbletime)
x <- as_tbl_time(x, index = date)

x %>% 
  as_period("daily")
0 голосов
/ 09 мая 2018

Из справки:

частота Управляет сезонной корректировкой (снятие сезонности). Ввод может быть либо «авто», определение на основе времени (например, «2 недели»), или числовое число наблюдений на частоту (например, 10). Ссылаться на time_frequency ().

тренд Управляет компонентом тренда. Тренд контролирует чувствительность младшего сглаживателя, который используется удалить остаток. Для твиттера тренд контролирует период ширина медианы, которые используются для удаления тренда и центрирования остальное. * * +1010

Я думаю, что вы поменяли их местами:

x %>%
  time_decompose(count, method = "twitter", frequency* = "2 months") %>%
  anomalize(remainder, method = "gesd") %>%
  time_recompose() %>%
  plot_anomalies(time_recomposed = TRUE)

Но трудно сказать, есть ли другие проблемы, так как данных недостаточно

...