On Mon, Feb 14, 2011 at 5:16 PM, Luca Meyer <lucam1...@gmail.com> wrote:
> Thanks Deepayan,
>
> What you suggest is quite fine, but provides the overall number of cases for 
> the entire dataset splitted into V2 levels.
>
> What about if I need to show panel specific's values? For instance I want to 
> show not the total number of Female but the total number of Female in 1st 
> Class.
>
> In other worlds, take your example and suppose I have:
>
> barchart(V2 ~ Freq | V1, data = tdf, groups = V3, layout=c(1,4), stack=TRUE,
>        ylim = sprintf("%s (n=%g)", names(numByV2), numByV2))
>
> and now what I would like to show is the result of
>
> with(tdf, tapply(Freq, list(V2,V1), sum))
>
> next to each stacked bar.
>
> In the previous example, I would need show in the Crew panel Female (n=23), 
> in the 3rd Class panel Female (n=196), etc...
>
> Can I do that?

Well, then you probably don't want to change the labels, but rather
put in the counts in each panel. Something like

barchart(V2 ~ Freq | V1, data=tdf, groups=V3, stack=TRUE,
         panel = function(x, y, ...) {
             n <- tapply(x, y, sum)
             panel.barchart(x, y, ...)
             panel.text(x = 0, y = sort(unique(as.numeric(y))),
                        srt = 90, adj = c(0.5, -0.2),
                        labels = sprintf("(n = %g)", n))
         })

If the numbers you want to add up is not the x or y variable, then you
need a little bit more work. You will need to pass in the count
variable separately and use 'subscripts' to get the proper subsets
(look for discussions of 'subscripts' in the documentation and/or
book).

-Deepayan

______________________________________________
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