[R] Newbie - Summarize function

Gabor Grothendieck ggrothendieck at gmail.com
Wed Dec 21 20:16:00 CET 2005


Just one follow up to my previous reply.

To use summarize with this problem try this:

   summarize(rownames(test), test[,1:2], function(r) g(test[r,]))

This define a funtion which inputs a vector of row names and outputs
g acting on the data.frame consisting of those rows only.


On 12/21/05, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
> Look at ?summarize .  The FUN argument is supposed to be a function
> that inputs a vector but your g inputs a data frame.  I think you want
> something like this (assuming package Hmisc):
>
>   mApply(test, test[,1:2], g)
>
> On 12/20/05, Andrew.Haywood at poyry.com.au <Andrew.Haywood at poyry.com.au> wrote:
> > Dear R Users,
> >
> > I have searched through the archives but I am still struggling to find a
> > way to process the below dataset. I have a dataset that has stratum and
> > plot identifier. Within each plot there is variable (Top) stating the
> > number of measurments that should be used to to calculate the mean to the
> > largest "top" elements within one of the vectors (X). I would like to
> > process this summary statistic by groups. At this stage I have been trying
> > to use the "summarize" function within the Hmisc library but I am getting
> > the following error "Error in eval(expr, envir, enclos) : numeric 'envir'
> > arg not of length one In addition: Warning message: no finite arguments to
> > max; returning -Inf".
> >
> > Any suggetsions on how I can fix this would be greatly appreciated.
> >
> > Kind regards
> >
> > Andrew
> >
> > test <- read.table("test.csv", header=TRUE, sep=",")
> > #function to calculate mean of "top" elements within a plot
> > > g<-function(y) {
> > + top_no <-max(y$top)
> > + weight <- with(y,as.numeric(x>=x[order(x,decreasing=TRUE)[top_no]]))
> > + wtd.mean(y$x,weight)
> > + }
> > > g(test)
> > [1] 172.6667
> > #call to summarize function - use function g and summarise by stratum plot
> > > test.2 <- with(test,summarize(test$x,llist(test$Stratum,test$plot),g))
> > Error in eval(expr, envir, enclos) : numeric 'envir' arg not of length one
> > In addition: Warning message:
> > no finite arguments to max; returning -Inf
> >
> > >traceback()
> > 9: eval(substitute(expr), data, enclos = parent.frame())
> > 8: with.default(y, as.numeric(x >= x[order(x, decreasing =
> > TRUE)[top_no]]))
> > 7: with(y, as.numeric(x >= x[order(x, decreasing = TRUE)[top_no]]))
> > 6: FUN(X, ...)
> > 5: summarize(test$x, llist(test$Stratum, test$plot), g)
> > 4: eval(expr, envir, enclos)
> > 3: eval(substitute(expr), data, enclos = parent.frame())
> > 2: with.default(test, summarize(test$x, llist(test$Stratum, test$plot),
> >       g))
> > 1: with(test, summarize(test$x, llist(test$Stratum, test$plot),
> >       g))
> >
> > The version im running on is
> >
> > $platform
> > [1] "i386-pc-mingw32"
> >
> > $arch
> > [1] "i386"
> >
> > $os
> > [1] "mingw32"
> >
> > $system
> > [1] "i386, mingw32"
> >
> > $status
> > [1] ""
> >
> > $major
> > [1] "2"
> >
> > $minor
> > [1] "2.0"
> >
> > $year
> > [1] "2005"
> >
> > $month
> > [1] "10"
> >
> > $day
> > [1] "06"
> >
> > $"svn rev"
> > [1] "35749"
> >
> > $language
> > [1] "R"
> >
> > >
> >
> >
> > Stratum plot     id        top     x
> > 1       1       1       2       12
> > 1       1       2       2       41
> > 1       1       3       2       12
> > 1       1       4       2       43
> > 1       1       5       2       12
> > 1       1       6       2       14
> > 1       1       7       2       43
> > 1       1       8       2       12
> > 1       2       1       4       42
> > 1       2       2       4       12
> > 1       2       3       4       432
> > 1       2       4       4       12
> > 1       2       5       4       12
> > 1       2       6       4       14
> > 1       2       7       4       41
> > 1       2       8       4       1
> > 2       1       1       2       12
> > 2       1       2       2       41
> > 2       1       3       2       12
> > 2       1       4       2       43
> > 2       1       5       2       12
> > 2       1       6       2       14
> > 2       1       7       2       43
> > 2       1       8       2       12
> > 2       2       1       3       42
> > 2       2       2       3       12
> > 2       2       3       3       432
> > 2       2       4       3       12
> > 2       2       5       3       12
> > 2       2       6       3       14
> > 2       2       7       3       41
> > 2       2       8       3       1
> >
> >
> >
> >
> >
> >        [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> >
>




More information about the R-help mailing list