R: Ошибки и гадости в тидивертах

У меня есть данные о событиях, которые происходят через нерегулярные промежутки времени, и единственное, что имеет значение, - это порядок. Я пытаюсь использовать некоторые функции из вселенной tidyverts (которая заменяет пакет прогнозов), объявляя последовательность последовательных целых чисел в качестве моего индекса времени. Я получаю сообщение об ошибке, которого не понимаю:

       Error in UseMethod("measured_vars") : 
  no applicable method for 'measured_vars' applied to an object of class "c('double', 'numeric')"

функция «measure_vars» находится в пакете tsibble. (ACF и autoplot взяты из feasts). Его документация гласит:

      Usage
measured_vars(x)

Arguments
x   
A tbl_ts.

Examples
measured_vars(pedestrian)

что мне кажется бесполезным. measure_vars - это универсальная функция. У него есть один метод: measured_vars.tbl_ts*Мой объект относится к классу tbl_ts. GetAnywhere сообщает, что это метод S3 в пространстве имен tsibble:

      function (x) 
{
    all_vars <- names(x)
    key_vars <- key_vars(x)
    idx_var <- index_var(x)
    setdiff(all_vars, c(key_vars, idx_var))
}
<bytecode: 0x0000023673afa460>
<environment: namespace:tsibble>

Этот код дает ту же ошибку:

      library("fpp3")
ind. <-1:4
data.  <-c(3,2,6,6)
data_ts <- as_tsibble(data.frame(ind., data.), index = "ind.")
autoplot(ACF(data_ts$data.))

Я понимаю, что функция, которая выдает ошибку, measured_vars, говорит, что хочет тсиббл, и я вручаю ему колонку в тсиббле. Но feasts::ACS также говорит, что хочет тсиббл, и я не верю, что он запрашивает вложенные тсибблы.

1 ответ

В ACFфункция ожидает, что первый параметр будет тибблом, а второй - именем переменной. Вы не можете пройти колонной. Использовать

      autoplot(ACF(data_ts, data.))

Кажется, я не вижу в вашем вопросе какого-либо другого исполняемого кода, поэтому неясно, в чем заключается первая проблема, но помните о типах данных, указанных на страницах справки. Вы можете передать тиббл measured_vars

      measured_vars(data_ts)
# [1] "data."

Обратите внимание, что у них разные классы

      class(data_ts)
# [1] "tbl_ts"     "tbl_df"     "tbl"        "data.frame"
class(data_ts$data.)
# [1] "numeric"
Другие вопросы по тегам