Error al llamar a `lm` en un` lapply` con argumento de `ponderaciones`

He encontrado un comportamiento extraño al llamarlm Dentro de unlapply utilizando laweights argumento.

Mi código consiste en una lista de fórmulas en las que ejecuto un modelo lineal al que llamolapply. Hasta ahora estaba funcionando:

dd <- data.frame(y = rnorm(100),
                 x1 = rnorm(100),
                 x2 = rnorm(100),
                 x3 = rnorm(100),
                 x4 = rnorm(100),
                 wg = runif(100,1,100))

ls.form <- list(
  formula(y~x1+x2),
  formula(y~x3+x4),
  formula(y~x1|x2|x3),
  formula(y~x1+x2+x3+x4)
)

res.no.wg <- lapply(ls.form, lm, data = dd)

Sin embargo, cuando agrego elweights argumento, me sale un error extraño:

res.with.wg <- lapply(ls.form, lm, data = dd, weights = dd[,"wg"])
Error in eval(extras, data, env) : 
  ..2 used in an incorrect context, no ... to look in

Es como si el... delapply estaba en conflicto con el... dellm llamar pero solo por elweights argumento.

¿Alguna idea fue la causa de este problema y cómo solucionarlo?

NOTA: usar la llamada sin ellapply funciona como se esperaba:

lm(ls.form[[1]], data = dd, weights = dd[,"wg"] )

Call:
lm(formula = ls.form[[1]], data = dd, weights = dd[, "wg"])

Coefficients:
(Intercept)           x1           x2  
   -0.12020      0.06049     -0.01937  

EDITAR La última llamada es unlapply Dentro de unfunction del tipo:

f1 <- function(samp, dat, wgt){
res.with.wg2 <- lapply(ls.form, function(x) {lm(formula = x, data=dat[samp,], weights=dat[samp,wgt])})
}

f1(1:66, dat=dd, wgt = "wg")

Respuestas a la pregunta(2)

Su respuesta a la pregunta