On Thu, 18 Jan 2007, Ott Toomet wrote:
> Dear R-people,
>
> I would like to construct a model frame while keeping eventual NA-s in
> it. The code looks like in lm():
>
> m <- match(c("formula", "data",
"subset", "weights", "na.action",
> "offset"), names(mf), 0)
> mfO <- mf[c(1, m)]
> mfO$drop.unused.levels <- TRUE
> mfO[[1]] <- as.name("model.frame")
> names(mfO)[2] <- "formula"
> mfO <- eval(mfO, parent.frame())
>
> The problem is that eval() removes all the observation which include
> NA-s.
>
> Are there ways to get the frames and keep NA-s? I see, I can play
> around with the "na.action" attribute of the resulting frame, but
how
> can I set the na.action?
Set na.action=na.pass on the call, or reset in your code (as that resets
drop.unused.levels).
--
Brian D. Ripley, ripley at 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