On 13-11-09 5:56 PM, Jeff Newmiller wrote:
The problem that prompted this question involved manufacturers and their model 
numbers, so I think the cross everything and throw away most of it will get out 
of hand quickly. The number of models per manufacturer definitely varies. I 
think I will work on the print segments of the table successively approach. 
Thanks for the ideas.

I've just added cbind() and rbind() methods for tabular objects, so that approach will be a lot easier. Just do the table of the first subset, then rbind on the subsets for the rest. Will commit to R-forge after a bit more testing and documentation.

Duncan Murdoch

---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnew...@dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                       Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.

Duncan Murdoch <murdoch.dun...@gmail.com> wrote:
On 13-11-09 1:23 PM, Jeff Newmiller wrote:
Visually, the elimination of duplicates in hierarchical tables in the
tabular function from the tables package is very nice. I would like
to do
the same thing with non-crossed factors, but am perhaps missing some
conceptual element of how this package is used. The following code
illustrates my goal (I hope):

library(tables)
sampledf <- data.frame( Sex=rep(c("M","F"),each=6)
              ,
Name=rep(c("John","Joe","Mark","Alice","Beth","Jane"),each=2)
              , When=rep(c("Before","After"),times=6)
              ,
Weight=c(180,190,190,180,200,200,140,145,150,140,135,135)
              )
sampledf$SexName <- factor( paste( sampledf$Sex, sampledf$Name ) )

# logically, this is the layout
tabular( Name ~ Heading()* When * Weight * Heading()*identity,
data=sampledf )

# but I want to augment the Name with the Sex but visually group the
# Sex like
#   tabular( Sex*Name ~ Heading()*When * Weight * Heading()*identity,
data=sampledf )
# would except that there really is no crossing between sexes.
tabular( SexName ~ Heading()*When * Weight * Heading()*identity,
data=sampledf )
# this repeats the Sex category excessively.

I forgot, there's a simpler way to do this.  Build the full table with
the junk values, then take a subset:

full <- tabular( Sex*Name ~ Heading()*When * Weight *
Heading()*identity, data=sampledf )

full[c(1:3, 10:12), ]

Figuring out which rows you want to keep can be a little tricky, but
doing something like this might be good:

counts <- tabular( Sex*Name ~ 1, data=sampledf )
full[ as.logical(counts), ]

Duncan Murdoch


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

Reply via email to