[R] diff in a dataframe

Gabor Grothendieck ggrothendieck at gmail.com
Thu Jan 10 19:27:44 CET 2008


This is consistent with how matrices and ts series in R work: they all
use x[,j] only.

On Jan 10, 2008 1:08 PM, Vishal Belsare <shoot.spam at gmail.com> wrote:
> 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