Я использую объекты зоопарка, купите мой вопрос также относится к объектам 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
в переменной или векторе, но я не знаю, как получить к нему доступ.
В общем, когда вы видите attr
, это означает, что эти данные являются атрибутом объекта.
Функция attributes
может использоваться для выгрузки всех атрибутов в виде списка, поэтому вы можете получить доступ к определенному элементу с помощью $
:
attributes(ObjZoo)$index
attr
дает вам прямой доступ к атрибуту с помощью его имя:
attr(ObjZoo,"index")
На самом деле это то, что index
делает:
> zoo:::index.zoo
function (x, ...)
{
attr(x, "index")
}
<environment: namespace:zoo>
Из справки для ?zoo
, есть два удобных метода для доступа к данным в объектах зоопарка:
coredata()
возвращает данные в объекте зоопарка 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