I am using zoo objects, buy my question also applies to xts objects. It looks to me like it is a one column vector with an index. In my case the index is the vector of dates and the one column vector my data. All is good except that I would like to access the dates (from the index).
For example I have the following result:
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
I want to get 14789
in a variable or a vector, but I'm not sure how to access it.
xts objects are simple. Think of them as a matrix of observations combined with an index of corresponding dates and times. xts = matrix + times. The main xts constructor takes a number of arguments, but the two most important are x for the data and order.by for the index. x must be a vector or matrix.
zoo is an R package providing an S3 class with methods for indexed totally ordered observations, such as discrete irregular time series. Its key design goals are independence of a particular index/time/date class and consistency with base R and the "ts" class for regular time series.
From the help for ?zoo
, there are two convenience methods to access the data in zoo objects:
coredata()
returns the data in the zoo objectindex()
returns the indexFor example:
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
In general when you see attr
, this means that this data is an attribute of an object.
attributes
function can be used to dump all attributes as a list, so you can access certain element with $
:
attributes(ObjZoo)$index
attr
gives you direct access to the attribute by its name:
attr(ObjZoo,"index")
In fact this is what index
does:
> zoo:::index.zoo function (x, ...) { attr(x, "index") } <environment: namespace:zoo>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With