Преобразование объекта ts (временного ряда) в вектор в R - PullRequest
10 голосов
/ 05 апреля 2010

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

1 Ответ

18 голосов
/ 05 апреля 2010
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...