[R] expanding factor with NA
Liaw, Andy
andy_liaw at merck.com
Mon Oct 27 21:21:41 CET 2003
Strangely (to me), just passing na.action=na.pass to model.matrix doesn't
work:
> f <- factor(rep(letters[1:3], 5))
> is.na(f[sample(15, 3)]) <- TRUE
> model.matrix(~f, data=model.frame(~f, na.action=na.pass))
(Intercept) fb fc
1 1 0 0
2 1 1 0
3 1 0 1
4 1 0 0
5 1 NA NA
6 1 0 1
7 1 0 0
8 1 NA NA
9 1 0 1
10 1 0 0
11 1 1 0
12 1 0 1
13 1 NA NA
14 1 1 0
15 1 0 1
attr(,"assign")
[1] 0 1 1
attr(,"contrasts")
attr(,"contrasts")$f
[1] "contr.treatment"
> model.matrix(~f, na.action=na.pass)
(Intercept) fb fc
1 1 0 0
2 1 1 0
3 1 0 1
4 1 0 0
6 1 0 1
7 1 0 0
9 1 0 1
10 1 0 0
11 1 1 0
12 1 0 1
14 1 1 0
15 1 0 1
attr(,"assign")
[1] 0 1 1
attr(,"contrasts")
attr(,"contrasts")$f
[1] "contr.treatment"
[OK, it's not so strange: na.action is not a documented argument for
model.matrix, and the call to model.frame in model.matrix.default does not
have ..., but shouldn't it?]
Andy
> -----Original Message-----
> From: Thomas W Blackwell [mailto:tblackw at umich.edu]
> Sent: Monday, October 27, 2003 3:08 PM
> To: J.R. Lockwood
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] expanding factor with NA
>
>
> Perhaps a much simpler method (just thought of it) would be to set
>
> options(na.action="na.pass")
>
> before you start. Or use na.action=na.pass() as an
> argument in the call to model.frame(), since that's where
> the problem begins. See help("na.omit"), help("model.frame").
>
> - tom blackwell - u michigan medical school - ann arbor -
>
> On Mon, 27 Oct 2003, J.R. Lockwood wrote:
>
> > I have a factor (with "n" observations and "k" levels), with only
> > "nobs" < n of the observations not missing. I would like
> to produce a
> > (n x k) model matrix with treatment contrasts for this factor, with
> > rows of NAs placeholding the missing observations. If I use
> > model.matrix() I get back a (nobs x k) matrix. Is there an
> easy way
> > to get the (n x k) without carrying along a row ID and merging?
> > Thanks.
> >
> > J.R. Lockwood
> > 412-683-2300 x4941
> > lockwood at rand.org
> > http://www.rand.org/methodology/stat/members/lockwood/
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo> /r-help
>
More information about the R-help
mailing list