Преобразование объекта ts (временных рядов) в вектор в R

Мне нужно использовать функцию на векторе, который не принимает объект ts. Я пытаюсь преобразовать его в простой старый вектор, но я просто не могу понять это. Я погуглил, но в основном люди пытаются преобразовать типы данных в объект ts. Я хочу в другую сторону. Любая помощь будет оценена.

1 ответов


data(AirPassengers)   # already in your R installation, via package "datasets"
AP = AirPassengers    
class(AP)
# returns "ts"

AP1 = as.numeric(AP)
# returns "numeric"

# another way to do it
AP1 = unclass(AP)

AP1-это вектор с то же самое значения и длина как AP. Класс теперь числовой вместо ts, что отчасти означает, что индексы больше не являются каким-то объектом даты-времени, а просто обычными последовательными целыми числами.

Итак, без конкретного вопроса в OP, любой из двух приведенных выше фрагментов будет"преобразовать [объект ts] в простой старый вектор"

Если вам нужно сделать то же самое с показатели вместо или в дополнение к значениям--ie, от объектов даты до числовых, вы можете сделать это так:

fnx = function(num_days_since_origin, origin="1970-01-01") {
  as.Date(num_days_since_origin, origin="1970-01-01")
}

a = as.Date("1985-06-11")
a2 = as.numeric(a)
# returns: 5640
a3 = fnx(5640)
# returns: "1985-06-11" (a date object)