[Rd] [R] combining tables

Robin Hankin r.hankin at noc.soton.ac.uk
Tue Jun 20 11:24:25 CEST 2006


On 19 Jun 2006, at 12:45, Gabor Grothendieck wrote:
> Try this:
>
> both <- c(x,y)
> as.table(tapply(both, names(both), sum))


thanks for this, Gabor.

The class of the objects I am manipulating in my
package is c("count", "table").

It'd be nice to overload the "+" symbol so that I can add
two count objects like this with a simple "x+y".  To this end, I
defined a Ops.count() function that executed Gabor's summation.

But, this broke all sorts of functionality in the package,
because the ">" relation was not defined in my Ops.count()
function.

In my case, the only operation that I want to redefine is "+".
I want to leave all the others unchanged.

What is Best Practice for redefining just one binary operator?



>
> On 6/19/06, Robin Hankin <r.hankin at noc.soton.ac.uk> wrote:
>> Hi
>>
>> Suppose I have two tables of counts of different animals and I
>> wish to pool them so the total of the sum is the sum of the total.
>>
>> Toy example follows (the real ones are ~10^3 species and ~10^6
>> individuals).
>> x and y are zoos that have merged and I need a combined inventory
>> including animals that are temporarily absent.
>>
>>
>>  > (x <- as.table(c(cats=3,squid=7,pigs=2,dogs=1,slugs=0)))
>> cats squid  pigs  dogs slugs
>>     3     7     2     1     0
>>  > (y <- as.table(c(cats=4,dogs=5,slugs=3,crabs=0)))
>> cats  dogs slugs crabs
>>     4     5     3     0
>>  > (desired.output <- as.table(c
>> (cats=7,squid=7,pigs=2,dogs=6,slugs=3,crabs=0)))
>> cats squid  pigs  dogs slugs crabs
>>     7     7     2     6     3     0
>>  >
>>
>>
>>
>>
>> Note that we have 7 cats altogether, and the crabs correctly show
>> as zero counts.
>>
>>
>> How to do this nicely in R?
>>
>>
>>

--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
  tel  023-8059-7743



More information about the R-devel mailing list