[R] frequency table for multiple variables

Marc Schwartz marc_schwartz at comcast.net
Tue Feb 17 17:00:40 CET 2009


on 02/17/2009 09:06 AM Hans Ekbrand wrote:
> Hi r-help!
> 
> Consider the following data-frame:
> 
>    var1 var2 var3 
> 1     3    1    4 
> 2     2    2    3 
> 3     2    2    3 
> 4     4    4   NA 
> 5     4    3    5 
> 6     2    2    3 
> 7     3    4    3 
> 
> How can I get R to convert this into the following?
> 
> Value 1  2  3  4  5 
> var1  0  3  2  2  0
> var2  1  3  1  2  0 
> var3  0  0  4  1  1


> t(sapply(DF, function(x) table(factor(x, levels = 1:5))))
     1 2 3 4 5
var1 0 3 2 2 0
var2 1 3 1 2 0
var3 0 0 4 1 1


The key is to turn each column into a factor with explicitly defined
common levels for tabulation. This enables the table result to have a
consistent format across each column, allowing for a matrix to be
created, rather than a list.

HTH,

Marc Schwartz




More information about the R-help mailing list