Dear all i have a time series containing trading dates and historical stock prices: Date Price 10-Jan-2007 100 11-Jan-2007 101 13-Jan-2007 99 ...... ...... ...... 10-Nov-2007 200 i want to sample every 21st data of each month: 21-Jan-2007 101 21-Feb-2007 111 21-Mar-2007 131 ...... ...... ...... 21-Oct-2007 140 1) how can i do that? 2) if some of the dates are non-trading day, how can i tell "R" to use "modified following" or "following" data? thanks carles
On Nov 15, 2007 12:54 PM, Carles Fan <eexchange at gmail.com> wrote:> Dear all > > i have a time series containing trading dates and historical stock prices: > Date Price > 10-Jan-2007 100 > 11-Jan-2007 101 > 13-Jan-2007 99 > ...... > ...... > ...... > 10-Nov-2007 200 > > i want to sample every 21st data of each month: > 21-Jan-2007 101 > 21-Feb-2007 111 > 21-Mar-2007 131 > ...... > ...... > ...... > 21-Oct-2007 140 > > 1) how can i do that? > 2) if some of the dates are non-trading day, how can i tell "R" to use > "modified following" or "following" data?Using zoo, z is some test data. zz is only those points whose day of the month is 21 or more. In the last line we keep only the first point in each month in zz. library(zoo) z <- zoo(101:200, as.Date("2000-01-01") + seq(0, len = 100, by = 2)) zz <- z[as.numeric(format(time(z), "%d")) >= 21] zz[!duplicated(as.yearmon(time(zz)))]
Carles Fan a ?crit :> Dear all > > i have a time series containing trading dates and historical stock prices: > Date Price > 10-Jan-2007 100 > 11-Jan-2007 101 > 13-Jan-2007 99 > ...... > ...... > ...... > 10-Nov-2007 200 > > i want to sample every 21st data of each month: > 21-Jan-2007 101 > 21-Feb-2007 111 > 21-Mar-2007 131 > ...... > ...... > ...... > 21-Oct-2007 140 > > 1) how can i do that?YourDataFrame[strptime(YourDataFrame$Date,"%Y-%b-%d")$mday==21,] # beware your locale !> 2) if some of the dates are non-trading day, how can i tell "R" to use > "modified following" or "following" data?Dunno : what is a"non-trading day" ? HTH Emmanuel Charpentier