2014-10-13 74 views
0

我想返回类“xts”“动物园”的时间系列。我想检索时间,但取而代之的是数字。下面我有一个例子:在循环中的返回时间R

rtn<-c(rep(NA,3)) 

for(i in 1:3){ 
    rtn[i]<-index(time_series[i]) 
    } 

这将返回:

[1] 13704 14049 14343 

这是我想它返回:

[1] "2007-07-10" "2008-06-19" "2009-04-09" 

预先感谢您的帮助。

以上是简化版本。这是代码中唯一无法运行的部分。如果有帮助这里是实际代码:

green_rtn<-c(rep(NA,length(green_series_open[,1]))) 
for(i in 1:length(green_series_open[,1])){ 
    green_rtn[i]<-straddles(coredata(green_series_open[i,1]),coredata(green_series_open[i,2]), 
    index(green_series_open[i]),index(green_series_close[i])) 
    } 
+1

你为什么要做循环?为什么不只是'index(time_series [1:3])'?或者如果你将'rtn'初始化为适当的日期向量:'rtn < - rep(as.Date(NA),3)' – MrFlick

+0

我压缩了我正在尝试的内容。我需要返回一个日期列表 – Pete

+0

@Pete你不能有一个不同类型的列表。也许你可以将你的日期存储为一个角色。 – agstudy

回答

1

你应该正确初始化rtn的日期载体。使用@ akrun的样本数据(如果你包含了你自己的reproducible example

rtn <- rep(as.Date(NA), 3) 

library(xts) 
time_series <- xts(rnorm(5), order.by=as.Date(c('2007-07-10', '2008-06-19', '2009-04-09', '2009-05-06', '2009-05-08'))) 

for(i in 1:3) { 
    rtn[i]<-index(time_series[i]) 
} 

rtn 
# [1] "2007-07-10" "2008-06-19" "2009-04-09" 
+0

time_series = 2007-07-10 2008-06-19 2009-04-09 – Pete