[R] Rr: For and if confusion

Matthieu Stigler matthieu.stigler at gmail.com
Thu Dec 18 13:43:52 CET 2008



> I have two date objects
>
> X <- c("01-03-1993", "01-05-1997") #Mar 1993 and May 1997
>
> Y <- c("01-02-1995", "01-08-1999") #Feb 1995 and Aug 1999
>
> and a time series object
>
> A <- ts(rnorm(120), freq=12, start=c(1992,8)) #Aug 1992 to Aug 2002
>
> I want to create a binary (0-1) vector B that is of length 1:(A).
>
> B should have value 1 for the time periods *across* my character 
> vectors, i.e. between Mar 93 ad Feb 95, and also between May-97 and 
> Aug-99, but zero otherwise.
>
> Would anyone have any ideas on how to do this? I would paste the code 
> I am trying, but it would confuse rather than clarify (R newbie!). Am 
> getting really lost in 'for' and 'if' loops, so would really 
> appreciate any help!
>
> Thanks!
>
> ShruthiRE
#time series of 1 in the interval
Int1<-ts(1, start=c(1993, 3), end=c(1997, 5), freq=12)
Int2<-ts(1, start=c(1993, 3), end=c(1997, 5), freq=12)
#original time series
Y <- ts(rnorm(120), freq=12, start=c(1992,8)) #Aug 1992 to Aug 2002

#need zoo and as.zoo because time(ts) I don't see how to use time(ts) nicely
library(zoo)

#condition and values
ifelse(time(as.zoo(Y))%in% time(as.zoo(Int1)),1,0)



More information about the R-help mailing list