Вставить текст как формулу для biglm

Я пытаюсь запустить несколько линейных регрессий на больших наборах данных. В основном biglm работает отлично. Теперь я пытаюсь найти удобный способ автоматического создания формулы, используя вектор, содержащий мои зависимые переменные, и строку, содержащую остальную часть моей формулы. Обе строки вместе - моя формула. Это нормально работает для lm (), но приводит к ошибке при использовании biglm ()

воспроизводимый пример:

library(biglm)

data<-data.frame(av=c(1,2,3,4,5,6,5,4,5,5),
              uv1=c(1,2,5,5,4,56,3,4,5,6),
              uv2=c(4,5,8,3,2,7,6,2,4,6),
              weight=c(1.2,1,1,1,1,1,1,1,0,0))

dependent<-c('av')

independent<-'~ uv1 + uv2 -1'

formula<-paste(dependent[1],independent)

#this works fine
lm_standard<-lm(formula,data=data,weights=weight)

#and this works fine
lm_big1<-biglm(av~uv1+uv2-1,data=data,weights=~weight)

#and here comes the error
lm_big<-biglm(formula,data=data,weights=~weight)

Ошибка: оператор $ недопустим для атомарных векторов

Я не использую as.formula (), потому что я не знаю, как добавить -1 к объекту as.formula (). Мой обход проблемы as.formula () приводит к сообщению об ошибке. Можно ли а) использовать as.formula () с отсутствующим перехватом или б) вставить формулу таким образом, что biglm () может понять?

1 ответ

Решение

lm автоматически принуждает подходящие объекты к formula объект, в то время как biglm не. Просто сделай это сам....

lm_big<-biglm( as.formula( formula ) ,data=data,weights=~weight)
Другие вопросы по тегам