将日期分配给R中列向量的每个元素

时间:2015-02-19 09:14:02

标签: r

我有一个列向量,它体现了月平均降雨量数据。我想为列向量的每个元素分配一个日期。我使用ts (column vector , freq=12,start=c(1901,1),但我得到的输出不是我想要的。相反,我需要可用于" xts' package ....日期格式如(年/月/日)1901-01-01 ,1901-02-01 .....

3 个答案:

答案 0 :(得分:0)

seq(as.Date("1910/1/1"), as.Date("1999/1/1"), "years")

你也可以使用更短的间隔

seq(as.Date("2000/1/1"), as.Date("2003/1/1"), by="3 months")

答案 1 :(得分:0)

您可以使用seq.Dateseq方法自动部署在Date个对象上)或使用timeBasedSeq xts创建日期序列封装

无论如何,如果您正在使用xts,为方便起见,我建议使用timeBasedSeq

例如,以下内容会创建从1901-01-011901-03-15的序列。序列是每天,因为我们指定/d

library(xts)
timeBasedSeq('19010101/19010315/d') 

##  [1] "1901-01-01" "1901-01-02" "1901-01-03" "1901-01-04" "1901-01-05" "1901-01-06"
##  [7] "1901-01-07" "1901-01-08" "1901-01-09" "1901-01-10" "1901-01-11" "1901-01-12"
## [13] "1901-01-13" "1901-01-14" "1901-01-15" "1901-01-16" "1901-01-17" "1901-01-18"
## [19] "1901-01-19" "1901-01-20" "1901-01-21" "1901-01-22" "1901-01-23" "1901-01-24"
## [25] "1901-01-25" "1901-01-26" "1901-01-27" "1901-01-28" "1901-01-29" "1901-01-30"
## [31] "1901-01-31" "1901-02-01" "1901-02-02" "1901-02-03" "1901-02-04" "1901-02-05"
## [37] "1901-02-06" "1901-02-07" "1901-02-08" "1901-02-09" "1901-02-10" "1901-02-11"
## [43] "1901-02-12" "1901-02-13" "1901-02-14" "1901-02-15"

有关详细信息,请参阅?timeBasedSeq


修改

然后,您可以通过提供此日期序列作为对象的索引来创建zooxts对象。

例如,让我们创建10个随机统一变量并添加索引以创建xts时间序列对象,以及zoo时间序列对象(后者是{{1}的格式你在这篇文章的评论中提到过。)

SanMartinoPPts

答案 2 :(得分:0)

如果这是月度数据,您可能希望使用"yearmon"类而不是"Date"类。这是两种方式。

如果tt是问题中创建的对象,i。即tt <- ts(x, freq = 12, start = c(1901 , 1))其中x是数据,请尝试以下操作:

xt <- as.xts(tt)

使用"yearmon"类作为索引,或者如果你想要"Date"类索引

time(xt) <- as.Date(time(xt)) ##

这也有效,并提供"yearmon"类索引。

xt2 <- as.xts( zooreg(x, as.yearmon("1901-01"), freq = 12) )

"Date"类索引可以与##类似地派生出来。