Skip to content

eval while keeping NA-s

2 messages · Ott Toomet, Brian Ripley

#
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?

Thanks in advance,
Ott
#
On Thu, 18 Jan 2007, Ott Toomet wrote:

            
Set na.action=na.pass on the call, or reset in your code (as that resets 
drop.unused.levels).