Преобразование ts (Временной ряд) возражает против Вектора в R

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

11
задан doug 5 April 2010 в 13:34
поделиться

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] в простой старый вектор »

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

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)
19
ответ дан 3 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: