# Re: [R] Need a factor level even though there are no observations

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Mon 09 May 2005 - 03:32:19 EST

Set levels not labels in the factor call. E.g.

> factor("School", levels = factorlabels)

On Sun, 8 May 2005, Ajay Narottam Shah wrote:

> I'm in this situation:
>
> factorlabels <- c("School", "College", "Beyond")
>
> with data for 8 families:
>
> education.man <- c(1,2,1,2,1,2,1,2) # Note : no "3" values
> education.wife <- c(1,2,3,1,2,3,1,2) # 1,2,3 are all present.

>
> My goal is to create this table:
>
> School College Beyond
> Husband 4 4 0
> Wife 3 3 2
>
>
> How do I do this?
>
> education.wife <- factor(education.wife, labels=factorlabels)
>
> But this breaks:
> education.man <- factor(education.man, labels=factorlabels)

>
> because none of the families have a husband who went beyond college.
>
> I get around this problem in a limited way by:
> cautiously <- function(x, labels) {
> factor(x, labels=factorlabels[as.numeric(levels(factor(x)))])
> }
> education.man <- cautiously(education.man, labels=factorlabels)
>
> Now I get:
>
> > table(education.man)
> School College
> 4 4
> > table(education.wife)
> School College Beyond
> 3 3 2
>
> This is a pain because now the two tables are not conformable. How do
> I get to my end goal, which is the table:
>
> School College Beyond
> Husband 4 4 0
> Wife 3 3 2
>
> In other words, how do I force education.man to have a factor with 3
> levels - "School" "College" "Beyond" - even though there is no
> observation in "Beyond".
>
> --
> Ajay Shah Consultant
> ajayshah@mayin.org Department of Economic Affairs
> http://www.mayin.org/ajayshah Ministry of Finance, New Delhi
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
>

```--
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help