Return data subset time frames within another timeframes?

我是研究僧i 提交于 2019-11-27 02:38:19

You can use the .index* family of functions to get certain months or certain days of the month. See ?index for the full list of functions. For example:

library(quantmod)
getSymbols("SPY")
SPY[.indexmon(SPY)==0]   # January for all years (note zero-based indexing!)
SPY[.indexmday(SPY)==1]  # The first of every month
SPY[.indexwday(SPY)==1]  # All Mondays

time-of-day subsetting is a little bit hidden, so I understand why it would spark a question like this. The only other 'trick' I know is the last and first functions, which you can nest if you need to. e.g. this will get the last 2 days of the first 3 weeks.

last(first(my_xts, "3 weeks"), "2 days")
Francis

Be aware that there appears to be different behavior for xts subsetting of a yearmon date format for windows and ubuntu.

library(quantmod)
library(xts)

getSymbols("SPY", src="google", from = "2004-01-01")
x1 <- SPY['2006-01/2007-12']

x2 <- apply.monthly(x1,mean)
x2['2006-01/2007-12']

x3 <- as.xts(coredata(x2),order.by = as.yearmon(index(x2)))
x3['2006-01/2007-12']

The result for x2 is consistent between windows and ubuntu, since the format is full date. However, the x3 will produce different result for windows and ubuntu, after the conversion of the dates to yearmon.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!