Привет, у меня проблемы с получением lm в laply, чтобы перебрать различные DV, для которых я заранее определил соответствующие столбцы веса в моем data.frame.
Вот рабочий пример:
require(dplyr)
df <- mtcars %>% mutate_at(
vars(mpg:drat),
funs(wt=rnorm(n()))
)
dvs <- names(select(df,mpg:drat))
res <- list()
res <- lapply(dvs, function(x) {
formula <- as.formula(paste0(x," ~ wt + qsec + as.factor(vs)"))
lm(formula,df)
})
Но это возвращает "объект 'mpg_wt' не найден"
res <- lapply(dvs, function(x) {
formula <- as.formula(paste0(x," ~ wt + qsec + as.factor(vs)"))
weightvars <- paste0(x,"_wt")
lm(formula,weights=as.formula(weightvars),df)
})
и это возвращает "переменные длины отличаются (найдено для '(весов)')" *
res <- lapply(dvs, function(x) {
formula <- as.formula(paste0(x," ~ wt + qsec + as.factor(vs)"))
weightvars <- paste0(x,"_wt")
lm(formula,weights=eval(weightvars),df)
})