Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模型矩阵不兼容-在R中的Biglm包中更新时出错_R_Bigdata_Regression_Lm - Fatal编程技术网

模型矩阵不兼容-在R中的Biglm包中更新时出错

模型矩阵不兼容-在R中的Biglm包中更新时出错,r,bigdata,regression,lm,R,Bigdata,Regression,Lm,我正在逐块运行一个大型数据集,在使用biglm函数时更新线性模型列表。当一个特定块不包含线性模型中的所有因子时,就会出现问题,我得到以下错误: Error in update.biglm(model, new) : model matrices incompatible update.biglm的描述提到所有块的因子级别必须相同。我可能会想出一个解决办法来避免这种情况,但一定有更好的办法,在“biglm”页面上,提到“因素必须有其完整的水平集 指定(不一定存在于数据块中)”。因此,我认为有某种

我正在逐块运行一个大型数据集,在使用biglm函数时更新线性模型列表。当一个特定块不包含线性模型中的所有因子时,就会出现问题,我得到以下错误:

Error in update.biglm(model, new) : model matrices incompatible
update.biglm的描述提到所有块的因子级别必须相同。我可能会想出一个解决办法来避免这种情况,但一定有更好的办法,在“biglm”页面上,提到“因素必须有其完整的水平集 指定(不一定存在于数据块中)”。因此,我认为有某种方法可以指定所有可能的级别,这样我就可以在不包含所有因素的情况下更新模型,但我不知道如何进行更新

下面是一段示例代码来说明我的问题:

df = data.frame(a = rnorm(12),b = as.factor(rep(1:4,each = 3)),c = rep(0:1,6))
model = biglm(a~b+c,data = df

df.new = data.frame(a = rnorm(6),b = as.factor(rep(1:2,each = 3)),c =rep(0:1, 3))
model.new = update(model,df.new)

谢谢你的建议。

我也遇到了这个问题。大数据框中的变量在分解成块之前是否指定为因子?此外,数据集是否格式化为数据帧

large_df <- as.data.frame(large_data_set) # just to make sure it's a df.
large_df$factor.vars <- as.factor(large_df$factor.vars)
large\u df
df.large <- rbind(df,df.new)
chunk1 <- df.large[1:12,]
chunk2 <- df.large[13:18,]

model <- biglm(a~b+c,data = chunk1)
model.new <- update(model,chunk2)   # this is now compatible