R get.hist.quote索引名称

时间:2014-02-14 04:34:07

标签: r date time-series

我使用get.hist.quote导入R中的股票数据。但我似乎colname索引日期as.Date

以下是代码:

SPX.prices = get.hist.quote(instrument="^gspc", start="1980-01-01", quote = c("Open", "High", "Low", "AdjClose"), provider="yahoo", origin="1970-01-01", compression="d", retclass="zoo")

这是带有colnames

的第一行的输出
           Open  High  Low   AdjClose
1980-01-02 107.9 108.4 105.3    105.8
1980-01-03 105.8 106.1 103.3    105.2
1980-01-04 105.2 107.1 105.1    106.5
1980-01-07 106.5 107.8 105.8    106.8
1980-01-08 106.8 109.3 106.3    109.0
1980-01-09 109.0 111.1 108.4    109.0
  1. 那么如何将“Date”分配给索引列?
  2. 如何重新格式化动物园中的日期列?
  3. 如何以递减/降序的方式使用日期?
  4. 非常感谢任何见解!

1 个答案:

答案 0 :(得分:0)

你的对象:

library(tseries)
SPX.prices <- get.hist.quote(instrument="^gspc", start="1980-01-01",
                             quote = c("Open", "High", "Low", "AdjClose"), 
                             provider="yahoo", origin="1970-01-01", 
                             compression="d", retclass="zoo")
  1. 索引列属于Date类。您可以使用time包中的indexzoo来访问这些信息。

    class(time(SPX.prices))
    # [1] "Date"
    
    library(zoo)
    class(index(SPX.prices))
    # [1] "Date"
    
  2. 重新格式化日期:

    您不应更改zoo对象的索引,而是将您的信息存储在数据框中:

    dat <- cbind(Date = time(SPX.prices), as.data.frame(SPX.prices))
    
    # new format
    dat$Date2 <- format(dat$Date, "%d %B %Y")
    # [1] "02 January 1980" "03 January 1980" "04 January 1980" ...
    
  3. 您可以按Date

    对数据框进行排序
    # ascending
    dat[order(dat$Date), ]
    # descending
    dat[order(dat$Date, decreasing = TRUE), ]