Подтвердить что ты не робот

Доступ к зоопарку или индексу xts

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

Например, у меня есть следующий результат:

ObjZoo <- structure(c(10, 20), .Dim = c(2L, 1L), index = c(14788, 14789),
                    class = "zoo", .Dimnames = list(NULL, "Data"))
unclass(ObjZoo)
#      Data
# [1,]   10
# [2,]   20
# attr(,"index")
# [1] 14788 14789

Я хочу получить 14789 в переменной или векторе, но я не уверен, как получить к ней доступ.

4b9b3361

Ответ 1

Из справки для ?zoo существуют два метода удобства доступа к данным в объектах зоопарка:

  • coredata() возвращает данные в объекте zoo
  • index() возвращает индекс

Например:

x.Date <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1
x <- zoo(rnorm(5), x.Date)

index(x)
[1] "2003-02-01" "2003-02-03" "2003-02-07" "2003-02-09" "2003-02-14"

coredata(x)
[1] -1.2487943  0.8911630  1.2713133 -0.1024638  0.2989194

Ответ 2

В общем случае, когда вы видите attr, это означает, что эти данные являются атрибутом .

Функция

attributes может использоваться для удаления всех атрибутов в виде списка, поэтому вы можете получить доступ к определенному элементу с помощью $:

attributes(ObjZoo)$index

attr дает вам прямой доступ к атрибуту по его имени:

attr(ObjZoo,"index")

На самом деле это то, что index делает:

> zoo:::index.zoo

function (x, ...) 
{
    attr(x, "index")
}
<environment: namespace:zoo>