2014-10-13 101 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