On 10/4/2010 9:22 AM, hadley wickham wrote:
That is, I want to define something like the
following using an a*ply method, but aaply gives a result in which the
applied .margin(s) do not appear last in the
result, contrary to the documentation for ?aaply. I think this is a bug,
either in the function or the documentation,
but perhaps there's something I misunderstand for this case.
Maybe the documentation isn't clear but I think this is behaving as expected:
* the margin you split on comes first in the output
* followed by the dimensions created by the applied function.
Hadley
OK, this is clear (and more explicit than the .Rd doc description of
Value).
What is still not clear is why alply() returns the split levels in their
original order, while aaply() returns them in sorted order when the
level names are character. My application is for
contingency tables, where, e.g., a dimension may have levels
c("Lo", "Med", "Hi") and I need to preserve this order in the result.
> alply(HairEyeColor, 3, fun2way) # gives c("Male", "Female")
$`1`
Eye
Hair Brown Blue Hazel
Black 32 11 10
Brown 53 50 25
Red 10 10 7
$`2`
Eye
Hair Brown Blue Hazel
Black 36 9 5
Brown 66 34 29
Red 16 7 7
attr(,"split_type")
[1] "array"
attr(,"split_labels")
Sex
1 Male
2 Female
>
> aaply(HairEyeColor, 3, fun2way) # gives c("Female", "Male")
, , Eye = Brown
Hair
Sex Black Brown Red
Female 36 66 16
Male 32 53 10
, , Eye = Blue
Hair
Sex Black Brown Red
Female 9 34 7
Male 11 50 10
, , Eye = Hazel
Hair
Sex Black Brown Red
Female 5 29 7
Male 10 25 7
>
--
Michael Friendly Email: friendly AT yorku DOT ca
Professor, Psychology Dept.
York University Voice: 416 736-5115 x66249 Fax: 416 736-5814
4700 Keele Street Web: http://www.datavis.ca
Toronto, ONT M3J 1P3 CANADA
______________________________________________
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.