2015-09-29 32 views
-1

我用getSymbols()從包quantmod獲得股票數據:,並將其轉換爲每週如下:R:如何使日期

SSEC=get(getSymbols("000001.SS",from="2015-02-01",to="2015-03-01")) 
to.weekly(SSEC) 


      SSEC.Open SSEC.High SSEC.Low SSEC.Close SSEC.Volume SSEC.Adjusted 
2015-02-06 3128.30 3204.91 3075.91 3075.91   0  3075.91 
2015-02-13 3095.12 3203.83 3095.12 3203.83   0  3203.83 
2015-02-17 3222.36 3246.91 3222.36 3246.91   0  3246.91 
2015-02-27 3228.84 3310.30 3228.84 3310.30   0  3310.30 

但我發現上面的第3排的日期是2015-02-17(星期二),這不是我認爲本週末(週五)2015-02-20。任何人都可以教我如何將上面的日期與每個星期五對齊嗎?

謝謝,祝你有美好的一天!

+4

請提供您用來獲取數據的代碼。 – sdgfsdh

+0

使用'xts'函數'to.weekly()'(包含在'quantmod'中)提供了正確的日期。 2月16日美國股市因假期休市;這可能會導致您用於創建數據的代碼中出現錯誤。 – RHertel

+0

感謝RHertel的解釋。這種錯誤實際上是由於假期。我添加了代碼來獲取數據。 – Hunt01

回答

0

此代碼會給你週五的一週對於所提供的任何日期:

x = c("2015-02-06","2015-02-13","2015-02-17") 
x = as.Date(x,format="%Y-%m-%d") 

print(x) 

today_week = as.numeric(strftime(x, format = "%U")) 
today_year = as.numeric(strftime(x, format = "%Y")) 
today_comb = paste(today_year,today_week,0,sep="-") 

friday_week = as.Date(strptime(today_comb,format="%Y-%W-%w")) + 5 
print(friday_week) 

[1] "2015-02-06" "2015-02-13" "2015-02-17" 
[1] "2015-02-06" "2015-02-13" "2015-02-20"