As I told you in private, thanks, it works perfectly.

More precisely, I am working with 3D array. Your code works well (both 
on matrix or on array).
But when part is a factor with only one value, the result has not a 
correct dimension (vector if m is a matrix, a matrix if m is an array).
Any way to fix that ?

m1 <- matrix(1:12,4)
m2 <- array(1:24,dim=c(4,3,2))
part1 <- factor(c("A","B","A","B"),levels=c("A","B","C"))
part2 <- factor(c("A","A","A","A"),levels=c("A"))


apply(m1, 2, tapply, part1, mean) ##Perfect (dim=c(3,3))
apply(m1, 2, tapply, part2, mean) ## dim=NULL...

apply(m2, c(2,3), tapply, part1, mean) ## Perfect (dim=c(3,3,2))
apply(m2, c(2,3), tapply, part2, mean) ## dim=c(3,2)


Christophe

> Try this:
>
> apply(m, 2, tapply, part, mean)
>
> On Mon, Mar 15, 2010 at 2:10 PM, Christophe Genolini
> <cgeno...@u-paris10.fr> wrote:
>   
>> Hi the list,
>>
>> As it is say in its doc, the aggregate function remove empty subsets. Is it
>> possible to NOT remove empty subset ?
>> --- 8< -------
>> m <- matrix(1:12,4)
>> part <- factor(c("A","B","A","B"),levels=c("A","B","C"))
>> aggregate(m,list(part),mean)
>>
>> ### I get:
>> #   Group.1 V1 V2 V3
>> # 1       A  2  6 10
>> # 2       B  3  7 11
>> #
>> ### I would like:
>> #   Group.1 V1 V2 V3
>> # 1       A  2  6 10
>> # 2       B  3  7 11
>> # 3       C NA NA NA
>> --- 8< ------
>>
>>
>> Thanks
>> Christophe
>>
>> ______________________________________________
>> 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.
>>
>>     
>
>
>
>   


        [[alternative HTML version deleted]]

______________________________________________
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