[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