[R] diff in a dataframe

Vishal Belsare shoot.spam at gmail.com
Thu Jan 10 19:08:57 CET 2008


Thanks Henrique, Don and Gabor. I did come around to solving it by
using the zoo library. Very useful stuff that one for handling a bunch
of long irregular time series.

Gabor, thanks for your present and previous responses. The quickref
was indeed helpful. I do have another question regarding zoo however.
Say I have a zoo object named X and say it has 200 time series within
it. Each has a unique column name. I tried to retrieve merely one
column (time series) from X, trying variously: X$columnname, or
X["columnname"] or X[["columnname"]] in the hope that I would be able
to get that one time series, but the only way which seemed to work is
X[,"columnname"]

Is that the 'correct' way to retrieve a single time series from a zoo
of multiple time series? I would think that it'd be cooler if we could
merely do a : X$columnname sort of thing. Please enlighten. Thanks
much!

Cheers,

Vishal


On Jan 10, 2008 10:40 PM, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
> Represent this as a time series.  Using
> the zoo package:
>
> > library(zoo)
> > z <- zoo(cbind(price_g = c(0.34, 0.36), price_s = c(0.56, 0.76)), as.Date(c("2000-01-01", "2000-01-05")))
> > diff(log(z))
>               price_g   price_s
> 2000-01-05 0.05715841 0.3053816
> > diff(log(z), na.pad = TRUE)
>               price_g   price_s
> 2000-01-01         NA        NA
> 2000-01-05 0.05715841 0.3053816
>
>
> See the two zoo vignettes:
> vignette("zoo")
> vignette("zoo-quickref")
>
>
> On Jan 10, 2008 2:16 AM, Vishal Belsare <shoot.spam at gmail.com> wrote:
> > I have a dataframe say:
> >
> > date   price_g   price_s
> >         0.34        0.56
> >         0.36        0.76
> >           .              .
> >           .              .
> >           .              .
> >
> > and so on. say, 1000 rows.
> >
> > Is it possible to add two columns to this dataframe, by computing say
> > diff(log(price_g) and diff(log(price_s)) ?
> >
> > The elements in the first row of these columns cannot be computed, but
> > can I coerce this to happen and assign a missing value there? It would
> > be really great if I could do that, because in this case I don't have
> > to re-index my transformed series to the dates again in a new
> > dataframe.
> >
> > Thanks in anticipation.
> >
> >
> > Vishal Belsare
> >
>
> > ______________________________________________
> > 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