> I suspect that what we really need is > > fitI <- lm(x ~ xreg - 1, na.action = na.omit) > fit <- if(length(dx) > ncol(dxreg)) > lm(dx ~ dxreg - 1, na.action = na.omit) > else list(rank = 0L) > if(fit$rank == 0L) { > ## Degenerate model. Proceed anyway so as not to break old code > fit <- fitI > } > n.used <- sum(!is.na(resid(fitI))) - length(Delta) > init0 <- c(init0, coef(fit)) > > At least that would be the conservative change to get n.used indentical to > what it was in 3.0.1
Along the same lines, here’s a solution that avoids the extra call to lm: fit <- if(length(dx) > ncol(dxreg)) lm(dx ~ dxreg - 1, na.action = na.omit) else list(rank = 0L) if(fit$rank == 0L) { ## Degenerate model. Proceed anyway so as not to break old code fit <- lm(x ~ xreg - 1, na.action = na.omit) } isna <- apply(is.na(xreg), 1, any) | is.na(x) n.used <- sum(!isna) - length(Delta) init0 <- c(init0, coef(fit)) ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel