xts
-объекты имеют класс c("xts", "zoo")
, что означает, что они являются матрицами со специальными атрибутами, которые назначаются их функциями создания.Хотя $
не удастся с матрицей, она работает с объектами xts
и zoo
благодаря методу $.zoo
.(Также не рекомендуется использовать $
внутри функций из-за возможной путаницы в оценке имен и частичном сопоставлении имен.) См. ?xts
и проверьте объект sample.xts
, созданный в первом примере с str
:
> ?xts
starting httpd help server ... done
> data(sample_matrix)
> sample.xts <- as.xts(sample_matrix, descr='my new xts object')
>
> str(sample.xts)
An ‘xts’ object on 2007-01-02/2007-06-30 containing:
Data: num [1:180, 1:4] 50 50.2 50.4 50.4 50.2 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:4] "Open" "High" "Low" "Close"
Indexed by objects of class: [POSIXct,POSIXt] TZ:
xts Attributes:
List of 1
$ descr: chr "my new xts object"
class(sample.xts)
# [1] "xts" "zoo"
Это объясняет, почему более ранний ответ, рекомендующий использовать xts3[ , "x"]
или эквивалентно xts3[ , 1]
, должен быть успешным.Функция [.xts
сначала извлекает элемент «Данные», а затем возвращает именованный или пронумерованный столбец, указанный в аргументе j
.
str(xts3)
An ‘xts’ object on 2018-05-24/2018-06-13 containing:
Data: int [1:20, 1:2] 10 9 8 7 6 5 4 3 2 1 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:2] "xts1" "xts2"
Indexed by objects of class: [Date] TZ: UTC
xts Attributes:
NULL
> xts3[ , "xts1"]
xts1
2018-05-24 10
2018-05-25 9
2018-05-26 8
2018-05-27 7
2018-05-28 6
2018-05-29 5
2018-05-30 4
2018-05-31 3
2018-06-01 2
2018-06-02 1
2018-06-04 NA
2018-06-05 NA
2018-06-06 NA
2018-06-07 NA
2018-06-08 NA
2018-06-09 NA
2018-06-10 NA
2018-06-11 NA
2018-06-12 NA
2018-06-13 NA
Операция merge.xts
может не доставить то, что выожидается, поскольку диапазоны дат не перекрываются.Возможно, вам нужно:
> xts4 <- rbind(xts1, xts2)
> str(xts4)
An ‘xts’ object on 2018-05-24/2018-06-13 containing:
Data: int [1:20, 1] 10 9 8 7 6 5 4 3 2 1 ...
Indexed by objects of class: [Date] TZ: UTC
xts Attributes:
NULL
Обратите внимание, что при операции rbind.xts
не удалось доставить объект с именем общего столбца, поэтому потребуется числовой доступ.(Я бы ожидал именованный элемент «Данные», но вам / нам также нужно прочитать ?rbind.xts
.)