[R] merge counts from table()
Rui Barradas
ruipbarradas at sapo.pt
Mon Aug 13 21:07:58 CEST 2012
Hello,
My earlier solution has a problem. If you have billions of counts over
~150 categories, it will recreate the full vectors every time you add a
new category, thus causing potential memory issues. Another, much more
complicated, way but using only the tables info is as follows.
twotable <- function(x, y) UseMethod("twotable")
twotable.default <- function(x, y) twotable( table(x), table(y) )
twotable.table <- function(x, y){
if(class(y) != "table") y <- table(y)
x.nms <- names(x)
y.nms <- names(y)
nms <- unique(c(x.nms, y.nms))
result <- integer( length(nms) )
names(result) <- nms
result[ x.nms ] <- x
result[ y.nms ] <- result[ y.nms ] + y
dim(result) <- length(nms)
dimnames(result) <- list(x = nms)
class(result) <- "table"
result
}
twotable(x, y)
twotable(t1, y)
By using S3 it gets all information it needs from the objects that
already exist. It should also be faster (untested, just a feeling).
Rui Barradas
Em 13-08-2012 19:45, Rui Barradas escreveu:
> Hello,
>
> This one will do it.
>
> x <- 1:4
> y <- 2:5
>
> t1 <- table(x)
> t2 <- table(y)
>
> (xy <- c(rep(names(t1), t1), rep(names(t2), t2)))
> table(xy)
>
> Hope this helps,
>
> Rui Barradas
>
> Em 13-08-2012 19:25, Francois Pepin escreveu:
>> Hi everyone,
>>
>> Is there an easy way to combine the counts from table()?
>>
>> Let's say that I have:
>> x<-1:4
>> y<-2:5
>>
>> I want to replicate:
>> table(c(x,y))
>>
>> using only table(x) and table(y) as input.
>>
>> The reason is that it's cumbersome to carry all the values around
>> when all I care about are the counts. The actual situation has about
>> a billion counts over ~150 categories.
>>
>> I know there's got to be a number of ways of doing things (plyr comes
>> to mind), but I can't seem to find how to accomplish it.
>>
>> Thanks,
>>
>> François Pepin
>> ______________________________________________
>> R-help at 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.
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list