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.