Dear R Community,

I am trying to build a very simple function which uses lm and coeftest to
return a coefficient matrix with heteroskedasticity robust standard errors.
The  function is the following:

reg=function(formula,data,na.action){
  res=lm(formula=formula,data=data,na.action=na.action)
  hc3=coeftest(res, vcov = vcovHC(res, type = "HC3"))
  residuals=resid(res)
  return(list("coef.hc3"=hc3,"R2"=summary(res)$r.squared,
    "R2.adj"=summary(res)$adj.r.squared, "residuals"=residuals))
}

The function works perfect as long as the data contains no missing values.
I.e.

test1=seq(1,30,1)
test2=seq(1,30,1)
testdata=data.frame(test1,test2)
reg(formula=test1~test2, data=testdata, na.action=na.exclude)

However, as soon as I have a missing value, it does not work any more (the
error message is: Error in estfun(x)/X : non-conformable arrays):

test1=seq(1,30,1)
test2=seq(1,30,1)
test2[5]=NA
testdata=data.frame(test1,test2)
reg(formula=test1~test2, data=testdata, na.action=na.exclude)

My feeling is that it has something to do with na.exclude being a function
itself and hence R having a problem with inputing a function into another
function. Does anyone have an idea?

Thanks a lot!!!
Regards

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to