粘贴文本作为biglm的公式

时间:2013-08-06 14:19:17

标签: r

我尝试在大型数据集上运行多个线性回归。基本上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()问题的解决方法导致错误消息。是否有可能a)使用缺少拦截的as.formula()或b)以某种方式粘贴公式,biglm()可以理解吗?

1 个答案:

答案 0 :(得分:3)

lm会自动将合适的对象强制转换为formula个对象,而biglm则不会。你自己做吧....

lm_big<-biglm( as.formula( formula ) ,data=data,weights=~weight)