Вставить текст как формулу для 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)