[R] List seems to drop empty levels of factors when containing them

Andrew Robinson andrewr at uidaho.edu
Wed Nov 10 04:43:52 CET 2004

Greetings R community,

I am curious about the following behaviour: if I define a factor, and
then store a subset of it in a list, the stored version seems to drop
levels that were not included in the subset.  E.g. ..

> mask <- c(T, F)
> grp.1 <- factor(c(1,2))
> list(grp.1)
[1] 1 2
Levels: 1 2

> list(grp.1[mask])
[1] 1
Levels: 1

It is as though the list were redefining the factor and dropping
empty levels.  I would like to keep them (I am using the list for a
two-dimensional tapply). Is there any way to avoid this?

I'm using R 2.0.0 on FreeBSD 5.2.1.


Andrew Robinson                      Ph: 208 885 7115
Department of Forest Resources       Fa: 208 885 6226
University of Idaho                  E : andrewr at uidaho.edu
PO Box 441133                        W : http://www.uidaho.edu/~andrewr
Moscow ID 83843                      Or: http://www.biometrics.uidaho.edu
No statement above necessarily represents my employer's opinion.

More information about the R-help mailing list