[R] tapply
Gabor Grothendieck
ggrothendieck at gmail.com
Tue Jun 21 04:26:55 CEST 2005
On 6/20/05, Weiwei Shi <helprhelp at gmail.com> wrote:
> hi,
> i have another question on tapply:
> i have a dataset z like this:
> 5540 389100307391 2600
> 5541 389100307391 2600
> 5542 389100307391 2600
> 5543 389100307391 2600
> 5544 389100307391 2600
> 5546 381300302513 NA
> 5547 387000307470 NA
> 5548 387000307470 NA
> 5549 387000307470 NA
> 5550 387000307470 NA
> 5551 387000307470 NA
> 5552 387000307470 NA
>
> I want to sum the column 3 by column 2.
> I removed NA by calling:
> tapply(z[[3]], z[[2]], sum, na.rm=T)
> but it does not work.
>
> then, i used
> z1<-z[!is.na(z[[3]],]
> and repeat
> still doesn't work.
>
> please help.
>
Depending on what you want you may be able to use rowsum:
- display only groups that have at least one non-NA with the sum
being the sum of the non-NAs:
with(na.omit(z), rowsum(V3, V2))
- display all groups with the sum being NA if any member is NA:
rowsum(z$V3, z$V2)
More information about the R-help
mailing list