Заголовок вопроса не гиперболический, это фактическое сообщение об ошибке:
Error: Attribute, `index_quo`, has been lost, but class is still `tbl_time`. This should not happen unless something has gone horribly wrong.
19.
stop(glue::glue(..., .sep, .envir = parent.frame()), call. = FALSE)
18.
glue_stop("Attribute, `index_quo`, has been lost, ", "but class is still `tbl_time`. This should not happen unless ", "something has gone horribly wrong.")
17.
get_index_quo(.tbl_time)
16.
is_quosure(quo)
15.
quo_squash(quo)
14.
type_of(.x)
13.
switch_type(expr, `NULL` = "NULL", symbol = as_string(expr), quosure = , language = if (is_data_pronoun(expr)) { data_pronoun_name(expr) %||% "<unknown>" } else { ...
12.
expr_name(quo_squash(quo))
11.
rlang::quo_name(get_index_quo(.tbl_time))
10.
get_index_char(x)
9.
get_index_char(x) %in% colnames(x_tbl)
8.
`[.tbl_time`(x, seq_len(n), , drop = FALSE)
7.
x[seq_len(n), , drop = FALSE]
6.
head.data.frame(x, n)
5.
head(x, n)
Особая часть, которая вызвала это:
ad_window <- function(...) {
data <- tibble(...)
fit <-
anomalize::decompose_twitter(data = data,
target = count,
message = FALSE) %>%
anomalize(remainder, method = "iqr") %>%
time_recompose()
return(fit)
}
tidyverse_cran_downloads %>%
nest(-group_cols()) %>%
filter(package %in% c("tidyr")) %>% # just to make it quick
mutate(
diag = map(
data, ~ ptile_dfr(
., ad_window, .size = 43
)
)
) -> tile3result
tile3result$diag
Кажется, это связано с аргументом .size
, с которым у меня возникли проблемы с в этом вопросе , который был решен @ earo-wang
Если я сделаю аргумент .size
на одну запись меньше, это произойдет:
tidyverse_cran_downloads %>%
nest(-group_cols()) %>%
filter(package %in% c("tidyr")) %>% # just to make it quick
mutate(
diag = map(
data, ~ ptile_dfr(
., ad_window, .size = 42
)
)
) -> tile2result
tile2result$diag
Error in stats::stl(., s.window = "periodic", robust = TRUE) : series is not periodic or has less than two periods
Что является той же ошибкой из моего предыдущего вопроса, за исключением того, что я использую ptile
, а не pslide
, и на выше .size
, чем исходная проблема.
n данных 425, все еще намного выше .size
значение:
tidyverse_cran_downloads %>%
filter(package %in% c("tidyr")) %>%
summarise(n())
Ответ на предыдущий вопрос звучит
tidyverse_cran_downloads %>%
nest(-group_cols()) %>%
filter(package %in% c("tidyr")) %>% # just to make it quick
mutate(
anoms = map(
data, ~ pslide_dfr(
., ad_window, .size = 7 * 3
)
)
) -> slideresult
slideresult$anoms
Просто преобразовав его в ptile
ошибки:
tidyverse_cran_downloads %>%
nest(-group_cols()) %>%
filter(package %in% c("tidyr")) %>% # just to make it quick
mutate(
diag = map(
data, ~ ptile_dfr(
., ad_window, .size = 7 * 3
)
)
) -> tileresult
tileresult$diag
Error in stats::stl(., s.window = "periodic", robust = TRUE) : series is not periodic or has less than two periods
Мне кажется, что это сбивает с толку:
1) не должно ли ptile
быть заменой на pslide
?
2) не должны ли данные иметь одинаковую частоту в обоих случаях?