[R] R Help

Gabor Grothendieck ggrothendieck at gmail.com
Wed Oct 22 00:21:38 CEST 2008


You can't mix character and numeric in a zoo object.
Also note that lag.zoo can be used so you don't have
to construct the lag yourself.

library(zoo)
set.seed(1)
z <- zoo(rnorm(10), as.Date(1:10))

# these are the same except upmove is logical series
# upmovenum is numeric series and move is a factor series

upmove <- z > lag(z, -1)  # TRUE if upmove
upmovenum <- upmove + 0
move <- zoo(factor(upmove, lab = c("down", "up")), time(upmove))

plot(merge(z, upmove, upmovenum, move))

On Tue, Oct 21, 2008 at 3:21 PM, Boyce, Morgan
<morgan.boyce at bankofamerica.com> wrote:
> Hi, I have the following code and am using R 2.7.2:
>
> JIBqq  <- (Jqrt.IB[2:length(Jqrt.IB)]/Jqrt.IB[1:(length(Jqrt.IB)-1)])-1
>        JIBqq <- cbind(zoo(JIBqq, Jqrt.time[2:length(Jqrt.time)]))
>         y.JIBqq   <- merge(JIBqq,lag(JIBqq,-1))
>
>> y.JIBqq
>                  JIBqq lag(JIBqq, -1)
> 2004-06-30  0.003318909             NA
> 2004-09-30 -0.028536136    0.003318909
> 2004-12-31  0.011529924   -0.028536136
> 2005-03-31  0.066068689    0.011529924
> 2005-06-30  0.023462638    0.066068689
> 2005-09-30 -0.006443928    0.023462638
> 2005-12-31 -0.030541853   -0.006443928
> 2006-03-31 -0.057128956   -0.030541853
> 2006-06-30 -0.014534821   -0.057128956
> 2006-09-30 -0.030611132   -0.014534821
> 2006-12-31  0.020189061   -0.030611132
> 2007-03-31  0.009045381    0.020189061
> 2007-06-30  0.025034436    0.009045381
> 2007-09-30  0.032251184    0.025034436
> 2007-12-31  0.051555978    0.032251184
> 2008-03-31  0.001866808    0.051555978
> 2008-06-30  0.043680370    0.001866808
> 2008-09-30  0.031271730    0.043680370
>
>        y.JIBqq[,1][y.JIBqq[,1]> y.JIBqq[,2]]<-'up move'
>        y.JIBqq[,1][y.JIBqq[,1]< y.JIBqq[,2]]<-'down move'
>
>> y.JIBqq
>           JIBqq               lag(JIBqq, -1)
> 2004-06-30 0.00331890938117052 <NA>
> 2004-09-30 down move           0.00331890938117052
> 2004-12-31 up move             -0.0285361360020099
> 2005-03-31 up move             0.0115299239240534
> 2005-06-30 down move           0.0660686892790183
> 2005-09-30 down move           0.0234626376481404
> 2005-12-31 -0.0305418525579293 -0.0064439280623304
> 2006-03-31 -0.0571289557443185 -0.0305418525579293
> 2006-06-30 up move             -0.0571289557443185
> 2006-09-30 -0.0306111317173215 -0.0145348212173988
> 2006-12-31 up move             -0.0306111317173215
> 2007-03-31 down move           0.0201890614449696
> 2007-06-30 up move             0.00904538134004018
> 2007-09-30 up move             0.0250344360146053
> 2007-12-31 up move             0.0322511838232158
> 2008-03-31 down move           0.0515559780138033
> 2008-06-30 up move             0.00186680815107398
> 2008-09-30 down move           0.0436803703122548
>
> My question is why 2005-12-31, 2006-03-31, and 2006-09-30 do not take the assigned character? I have done this same procedure with several other data and have not run into this problem. Any help is appreciated.
>
> Thanks,
>
>
> Morgan K. Boyce
> GPS - Quant Finance Analyst
> Phone: 980-386-4074
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list