There are very nifty ways of subsetting xts
objects. For example, one can get all the data for all years, months, days but being strictly between 9:30 AM and 4 PM by doing:
my_xts["T09:30/T16:00"]
Or you can get all the observations between two dates by doing:
my_xts["2012-01-01/2012-03-31"]
Or all the dates before/after a certain date by doing:
my_xts["/2011"] # from start of data until end of 2011
my_xts["2011/"] # from 2011 until the end of the data
How can I get all the data for only certain months for all years or only certain days for all months and years? Do any other subsetting tricks exist?
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