On 6/20/05, Weiwei Shi <[EMAIL PROTECTED]> 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)

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to