[R] help with counting how many times each value occur in each column

François Pinard pinard at iro.umontreal.ca
Fri Aug 10 16:47:49 CEST 2007


[Tom Cohen]

>  I have the following dataset and want to know how many times each value occur in each column.

>   >data
>        [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
> [1,] -100 -100 -100    0    0    0    0    0    0  -100
> [2,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
> [3,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
> [4,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
> [5,] -100 -100 -100 -100 -100 -100 -100 -100 -100   -50
> [6,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
> [7,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
> [8,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
> [9,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[10,] -100 -100 -100  -50 -100 -100 -100 -100 -100  -100
>[11,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[12,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[13,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[14,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[15,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[16,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[17,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[18,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>[19,] -100 -100 -100    0    0    0    0    0    0  -100
>[20,] -100 -100 -100 -100 -100 -100 -100 -100 -100  -100
>  The result matrix should look like
>       -100 0 -50
>[1]   20  
>[2]   20
>[3]   20
>[4]   17
>[5]   18
>[6]   18
>[7]   18  and so on 
>[8] 
>[9] 
>[10]

Presuming that "data" is a matrix, one could try a sequence like this:

dataf <- factor(data)
dim(dataf) <- dim(data)
result <- t(apply(dataf, 2, tabulate, nlevels(dataf)))
colnames(result) <- levels(dataf)
result

If you want the columns sorted, you might decide the order of the levels 
on the "factor()" call, or explicitly reorder columns afterwards.

-- 
François Pinard   http://pinard.progiciels-bpi.ca



More information about the R-help mailing list