[R] sample nth day data in each month

Carles Fan eexchange at gmail.com
Tue Nov 20 03:57:47 CET 2007


many thanks Gabor.

Q1:
if i want to do with the following 2 conditions, how can i do?
condition 1) every n-th day
condition 2) every x-month <-----    x = 1 to 12

Eg:
condition 1) every 21-th day
condition 2) every 2-month

1st data:  2000-01-21 100
2nd data: 2000-03-21 101
3rd data: 2000-05-21  103
...
...
...

Q2:
how can i loop thur 'z" from start to the end with the above conditions?
eg:
condition 1) every n-th day
condition 2) every 2-month

1st batch run
1st data:  2000-01-01 100
2nd data: 2000-03-01  104
3rd data: 2000-05-01  106
...
...
...

2nd batch run
1st data:  2000-01-02 103
2nd data: 2000-03-02 104
3rd data: 2000-05-02  106
...
...
...

3rd batch run
1st data:  2000-01-03 103
2nd data: 2000-03-03  105
3rd data: 2000-05-03  106
...
...
...



On Nov 16, 2007 2:53 AM, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
>
> 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)))]
>



More information about the R-help mailing list