Значения цен акций в Quantmod на самом деле не являются ни data.frames, ни матрицами, хотя они построены из компонентов, имеющих матричную структуру, и они в некоторой степени похожи на zoo
-объекты:
str(AAPL)
#---------
An ‘xts’ object on 2007-01-03/2018-05-01 containing:
Data: num [1:2852, 1:6] 12.3 12 12.3 12.3 12.3 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:6] "AAPL.Open" "AAPL.High" "AAPL.Low" "AAPL.Close" ...
Indexed by objects of class: [Date] TZ: UTC
xts Attributes:
List of 2
$ src : chr "yahoo"
$ updated: POSIXct[1:1], format: "2018-05-02 16:49:23"
Таким образом, объект AAPL имеет числовую матрицу с именем «Данные» и отдельный индекс класса Date:
> str( index(AAPL) )
Date[1:2852], format: "2007-01-03" "2007-01-04" "2007-01-05" "2007-01-08" "2007-01-09" "2007-01-10" "2007-01-11" "2007-01-12" ...
> str( coredata(AAPL) )
num [1:2852, 1:6] 12.3 12 12.3 12.3 12.3 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:6] "AAPL.Open" "AAPL.High" "AAPL.Low" "AAPL.Close" ...
Вам необходимо изучить структуру и специальные функции, необходимые для чистого доступа к ним. Посмотрите на:
?xts
?xtsAttributes
Я подозреваю, что вы, возможно, захотите попробовать принуждение к объекту фрейма данных:
str( as.data.frame(AAPL) )
#--------
'data.frame': 2852 obs. of 6 variables:
$ AAPL.Open : num 12.3 12 12.3 12.3 12.3 ...
$ AAPL.High : num 12.4 12.3 12.3 12.4 13.3 ...
$ AAPL.Low : num 11.7 12 12.1 12.2 12.2 ...
$ AAPL.Close : num 12 12.2 12.2 12.2 13.2 ...
$ AAPL.Volume : num 309579900 211815100 208685400 199276700 837324600 ...
$ AAPL.Adjusted: num 8.1 8.28 8.23 8.27 8.95 ...
row.names( as.data.frame(AAPL) )[:16]
#---------
[1] "2007-01-03" "2007-01-04" "2007-01-05" "2007-01-08" "2007-01-09" "2007-01-10" "2007-01-11" "2007-01-12"
[9] "2007-01-16" "2007-01-17" "2007-01-18" "2007-01-19" "2007-01-22" "2007-01-23" "2007-01-24" "2007-01-25"