Re: [R] formatting results from a function argument

From: jim holtman <jholtman_at_gmail.com>
Date: Mon 20 Feb 2006 - 16:41:27 EST

Is this what you want?

> tapply(x$TcCB, x$Area, my.func)

$cleanup

     Count       Mean         SD        Min     Median        90%
95%        Max        Sum

 5.0000000 2.1292699 0.9610394 1.1643714 2.1836433 3.0889716 3.3421262 3.5952808 10.6463495

$ref

     Count       Mean         SD        Min     Median        90%
95%        Max        Sum

 5.0000000 0.1351357 0.6688342 -0.8204684 0.4874291 0.6733074 0.7058160 0.7383247 0.6756783

> do.call('rbind',tapply(x$TcCB, x$Area, my.func))

        Count      Mean        SD        Min    Median       90%
95%       Max        Sum
cleanup     5 2.1292699 0.9610394  1.1643714 2.1836433 3.0889716 3.342126
3.5952808 10.6463495
ref         5 0.1351357 0.6688342 -0.8204684 0.4874291 0.6733074 0.705816
0.7383247 0.6756783
>

You can change the following function to create the quantiles that you want:

 my.func <- function(a)
{

     if (storage.mode(a) == 'integer') storage.mode(a) <- 'double' # force to 'real' if 'integer'

    data <- c(length(a), mean(a), sqrt(var(a)), quantile(a, c(0., 0.5, 0.9, 0.95,

        1.)), sum(a))
    names(data) <- c("Count", "Mean", "SD", , "Min", "Median", "90%", "95%", "Max",

        "Sum")
    data
}

On 2/20/06, matgopa1@umbc.edu <matgopa1@umbc.edu> wrote:
>
> Hello all,
>
> I have a simple function which calculates summary statistics of a dataset
> in terms of a factor (say area).
>
> > x = data.frame(Area = c(rep("cleanup", 5), rep("ref", 5)), TcCB =
> c(rnorm(5)+2, rnorm(5)));x
> Area TcCB
> 1 cleanup 2.5829747
> 2 cleanup 2.6796868
> 3 cleanup 2.5437094
> 4 cleanup 2.8453616
> 5 cleanup 1.1789683
> 6 ref 1.0140391
> 7 ref -0.8433729
> 8 ref 0.6512422
> 9 ref 0.2341083
> 10 ref -0.2688026
> >
> > summarystat<-function(x)
> + {
> + no.samples<-by(x,x$Area,function(x) length(x$TcCB))
> + mean<-by(x,x$Area,function(x) mean(x$TcCB))
> + quantile<-by(x,x$Area,function(x) summary(x$TcCB))
> + stdev<-by(x,x$Area,function(x) sd(x$TcCB))
> + final<-do.call("cbind",c(quantile,mean,stdev,no.samples))
> + return(final)
> + }
> >
> > test<-summarystat(x);test
>
> cleanup ref cleanup ref cleanup ref cleanup ref
> Min. 1.179 -0.8434 2.36614 0.1574428 0.6737748 0.736001 5 5
> 1st Qu. 2.544 -0.2688 2.36614 0.1574428 0.6737748 0.736001 5 5
> Median 2.583 0.2341 2.36614 0.1574428 0.6737748 0.736001 5 5
> Mean 2.366 0.1574 2.36614 0.1574428 0.6737748 0.736001 5 5
> 3rd Qu. 2.680 0.6512 2.36614 0.1574428 0.6737748 0.736001 5 5
> Max. 2.845 1.0140 2.36614 0.1574428 0.6737748 0.736001 5 5
> >
>
> Now the results are arranged as per quantile function.
>
> When the results are printed, I would like to have the results for mean,
> stdev, no.samples, quantiles one after the other with the function names
> for the two factors namely cleanup and reference. Can somebody help in
> doing so? I did refer to a previous thread on formatting results from
> function. But my case is little different.
>
> Moreover, i would like to know, if there is any R command which produces
> this general summary statistics as above?
>
> Thanks for your time.

> Mathangi
>
> ______________________________________________
> R-help@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
>

--
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What the problem you are trying to solve?

	[[alternative HTML version deleted]]

______________________________________________
R-help@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
Received on Mon Feb 20 16:46:30 2006

This archive was generated by hypermail 2.1.8 : Tue 21 Feb 2006 - 14:38:21 EST