Yes, that sounds right. Michael
PS -- If you are interested, the code zoo:::`coredata<-.zoo` contains the line x[] <- value confirming my hunch about the old mode being inherited unless a coercion to a more general one is needed. On Tue, Sep 27, 2011 at 7:01 AM, Ashim Kapoor <ashimkap...@gmail.com> wrote: > Dear Micheal, > > Thank you. So to make a zoo which has factors in into a numeric,we have to > go from factor to character to numeric. The coredata goes fine from factor > to character. In the numeric conversion we need a new zoo object. > > Best, > Ashim > > > On Tue, Sep 27, 2011 at 4:21 PM, R. Michael Weylandt < > michael.weyla...@gmail.com> wrote: > >> It's just a guess from playing around with a few things. The author of the >> package is on this list and he could both confirm that I'm right and say why >> exactly it is implemented like this. >> >> My hunch is that it ultimately comes from the fact that >> >> coredata(z) != z >> >> Consider this: >> >> x = letters[1:5] >> x2 <- x1 <- x >> >> mode(x) >> >> x1[1:5] <- 1:5 # Modify the values of x1 without changing the mode >> print(x1) >> >> x2 <- 1:5 # Replace x2 >> print(x2) >> >> Michael Weylandt >> >> >> On Tue, Sep 27, 2011 at 6:41 AM, Ashim Kapoor <ashimkap...@gmail.com>wrote: >> >>> Dear Michael, >>> >>> I don't think this is mentioned in the zoo FAQ. May I ask where you read >>> this? Some references ? >>> >>> Thank you for your help, >>> Ashim >>> >>> >>> On Tue, Sep 27, 2011 at 4:06 PM, R. Michael Weylandt < >>> michael.weyla...@gmail.com> wrote: >>> >>>> Yes, once made into a character zoo, the core data is marked to be of >>>> mode "character" and most attempts to modify involve implicit coercion to >>>> that mode. >>>> >>>> The following however works: >>>> >>>> library(zoo) >>>> >>>> z <- zoo(1:4, order.by=1:4) >>>> str(z) >>>> >>>> z.Str <- z >>>> coredata(z.Str) <- as.character(coredata(z)) >>>> str(z.Str) >>>> >>>> z.Num <- z.Str >>>> mode(z.Num) <- "numeric" >>>> str(z.Num) >>>> >>>> However, I prefer to use this sort of line of code: >>>> >>>> z.Num <- zoo(as.double(z.Str), index(z.Str)) >>>> >>>> finding it a little more transparent. >>>> >>>> Hope this helps, >>>> Michael Weylandt >>>> >>>> On Tue, Sep 27, 2011 at 5:56 AM, Ashim Kapoor <ashimkap...@gmail.com>wrote: >>>> >>>>> Dear R-helpers, >>>>> >>>>> It seems to me that a character zoo cannot be coerced to a numeric zoo. >>>>> Below is a minimal example. Can someone tell me what I have done wrong? >>>>> >>>>> > z<-zoo(1:4,order.by=1:4) >>>>> > coredata(z)<-as.character(coredata(z)) >>>>> > str(z) >>>>> zoo series from 1 to 4 >>>>> Data: chr [1:4] "1" "2" "3" "4" >>>>> Index: int [1:4] 1 2 3 4 >>>>> > coredata(z)<-as.numeric(coredata(z)) >>>>> > str(z) >>>>> zoo series from 1 to 4 >>>>> Data: chr [1:4] "1" "2" "3" "4" >>>>> Index: int [1:4] 1 2 3 4 >>>>> >>>>> >>>>> Many thanks, >>>>> Ashim >>>>> >>>>> [[alternative HTML version deleted]] >>>>> >>>>> >>>>> ______________________________________________ >>>>> R-help@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. >>>>> >>>>> >>>> >>> >> > [[alternative HTML version deleted]]
______________________________________________ R-help@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.