[R] eval while keeping NA-s

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Jan 18 14:28:13 CET 2007


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



More information about the R-help mailing list