создавать новые с разными формулами.

лкиваюсь со странным поведением при звонкеlm в пределахlapply с помощьюweights аргумент.

Мой код состоит из списка формул, по которым я запускаю линейную модель, которую я вызываю вlapply, Пока это работает:

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)

Тем не менее, когда я добавляюweights аргумент, я получаю странную ошибку:

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

Это как если бы... изlapply был в конфликте с... изlm звонить, но только из-заweights аргумент.

Любая идея была причиной этой проблемы и как это исправить?

ПРИМЕЧАНИЕ: использование звонка безlapply работает как положено:

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  

РЕДАКТИРОВАТЬ Последний звонокlapply в пределахfunction типа:

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")

Ответы на вопрос(2)

Ваш ответ на вопрос