使用R:如何创建带日期的时间序列对象?

Don*_*n P 7 r time-series

我有一年一小时的一系列价值观.是否可以创建一个保留小时和年份值的时间序列对象?

我的代码使用stockprices第1列中的值,但不使用日期:

stockprices.ts <- ts(stockprices[,1],start=1, freq=168)
Run Code Online (Sandbox Code Playgroud)

kho*_*sey 22

您没有提供数据样本,但SO上有很多其他答案(例如这里),涵盖了这个问题.我使用xts进行时间序列工作,尽管还有其他不错的选择.

假设您的数据是两列,您可能通过read.table加载了一个数据框:

> stockprices <- data.frame(prices=c(1.1,2.2,3.3),
               timestamps=c('2011-01-05 11:00','2011-01-05 12:00','2011-01-05 13:00'))
> stockprices
  prices       timestamps
1    1.1 2011-01-05 11:00
2    2.2 2011-01-05 12:00
3    3.3 2011-01-05 13:00
Run Code Online (Sandbox Code Playgroud)

你可以转换为xts时间序列:

> require(xts)
> stockprices.ts <- xts(stockprices$prices, order.by=as.POSIXct(stockprices$timestamps))
> stockprices.ts
                    [,1]
2011-01-05 11:00:00  1.1
2011-01-05 12:00:00  2.2
2011-01-05 13:00:00  3.3
Run Code Online (Sandbox Code Playgroud)

  • 如果没有时间,只是日期怎么办? (2认同)
  • @ScottDavis:如果你想要简单的日期,你可以将`as.POSIXct`函数调用更改为`as.Date`,它应该工作相同. (2认同)