[R] Force "square" crosstabulation
Duncan Murdoch
murdoch at stats.uwo.ca
Sun Dec 3 02:33:48 CET 2006
On 12/2/2006 8:26 PM, Manuel Morales wrote:
> Hello list members,
>
> I'm looking for a way to force the results of a crosstabulation to be
> square - that is, to include 0 values.
>
> For example:
>
> table(letters[1:4],letters[c(1:3,3)])
>
> yields:
> a b c
> a 1 0 0
> b 0 1 0
> c 0 0 1
> d 0 0 1
>
> I would like to return:
> a b c d
> a 1 0 0 0
> b 0 1 0 0
> c 0 0 1 0
> d 0 0 1 0
>
> Any suggestions?
Force the categories to be factors.
> fletters <- factor(letters[1:4])
> table(fletters[1:4],fletters[c(1:3,3)])
a b c d
a 1 0 0 0
b 0 1 0 0
c 0 0 1 0
d 0 0 1 0
The idea is that when you take subsets of factors, the levels stay the
same, and table uses those levels for its categories.
Duncan Murdoch
More information about the R-help
mailing list