从R对象获取日期

时间:2014-03-17 12:51:01

标签: r

我有一个stk函数调用产生的对象getYahooData,具有以下属性:

class(stk)给出了

[1] "xts" "zoo"

stk[1]给出了

            Open  High   Low Close  Volume    logret
1950-02-28 17.22 17.22 17.22 17.22 1310000 0.9921295

如何获得日期,1950-02-28?

stk[1]$Date给出了

NULL

如何获得Open,17.22?

stk[1]$Open给出了

            Open
1950-02-28 17.22

1 个答案:

答案 0 :(得分:1)

日期是指数(类似于rownames),而不是Open列的一部分。

使用index功能提取它们:

library(xts)
data(sample_matrix)
sample.xts <- as.xts(sample_matrix, descr='my new xts object')

head(sample.xts)
#               Open     High      Low    Close
#2007-01-02 50.03978 50.11778 49.95041 50.11778
#2007-01-03 50.23050 50.42188 50.23050 50.39767
#2007-01-04 50.42096 50.42096 50.26414 50.33236
#2007-01-05 50.37347 50.37347 50.22103 50.33459
#2007-01-06 50.24433 50.24433 50.11121 50.18112
#2007-01-07 50.13211 50.21561 49.99185 49.99185

index(sample.xts)[1]
#[1] "2007-01-02 CET"

列仍然是xts对象:

class(sample.xts$Open)
[1] "xts" "zoo"

你可以把它变成原子矢量:

as.vector(sample.xts$Open)[1:5]
#[1] 50.03978 50.23050 50.42096 50.37347 50.24433