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"