[R] aggregate empty row for pretty appearance also subtotal if possible

Sharma, Dhruv Dhruv.Sharma at PenFed.org
Fri Oct 3 21:49:31 CEST 2008


Hi,
By the way if there are many columns in the aggregate like x1,x2,x3 for
example how would the subtotal code change?
Is it possible to get subtotal for multiple columns by Group.1 e.g.
below?

Thanks
Dhruv
 

-----Original Message-----
From: jim holtman [mailto:jholtman at gmail.com] 
Sent: Thursday, October 02, 2008 10:28 PM
To: Sharma, Dhruv
Cc: r-help at r-project.org
Subject: Re: [R] aggregate empty row for pretty appearance also subtotal
if possible


Here is one way of doing it:

> dat <- read.table(textConnection("Group1 Group2      x
+ A        Y                1
+ B        N                1
+ A        Y                1
+ B        N           420164904
+ A        N               3"), header=TRUE, as.is=TRUE)
> closeAllConnections()
> d <- aggregate(dat$x, list(dat$Group1, dat$Group2), sum) # split on 
> Group.1, and add row with sum d.l <- lapply(split(d, d$Group.1), 
> function(.df){
+     rbind(.df, list('','',sum(.df$x)))
+ })
> do.call(rbind, d.l)
     Group.1 Group.2         x
A.1        A       N         3
A.3        A       Y         2
A.31                         5
B.2        B       N 420164905
B.21                 420164905


On Thu, Oct 2, 2008 at 5:46 PM, Sharma, Dhruv <Dhruv.Sharma at penfed.org>
wrote:
> Hi,
>   To pretty print aggregates by various dimensions I needed to add a 
> empty row in output of aggregate.
>
>    For example.
>
>  d<-(aggregate(data[,cbind("x")], by=list(data$group1,data$group2),
> sum))
>
>          Group.1 Group.2          x
> 1 A                   N         3
> 2 A                   Y        2
> 3 B                   N         420164905
>
> Is there a way to add an empty row between group1 and group 2.
> So that it looks like
>          Group.1 Group.2          x
> 1 A                   N                 3
> 2 A                   Y                 2
> 3
> 4 B                   N         420164905
>
>
> I need to format a series of aggregates by multi dimensions and I 
> wanted to break the data by empty row between group 1 that people can 
> see some space.
>
> Also is there a way to add subtotals by group 1 into the mix :
>          Group.1 Group.2          x
> 1 A                   N               3
> 2 A                   Y                2
> 3                                         5
> 4 B                   N         420164905
> 5                                  420164905
>
>
> original data is something like:
> data
> Group1 Group2      x
> A        Y                1
> B        N                1
> A        Y                1
> B        N           420164904
> A        N               3
>
>
> thanks
> Dhruv
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>



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

What is the problem that you are trying to solve?



More information about the R-help mailing list