R语言 变量长度不同(为“x”找到)

k3fezbri  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(309)

我已经看到了这个错误的几个案例,但他们似乎没有解决或适用于我的情况。
我正在使用biglm构建逻辑回归模型。
我有一个Data.frame,它有大约250个变量和100多万行。
由于bigglm()不能使用点符号来选择模型中的所有变量,因此我构建了类似this的公式。
因此,如果f是公式,df是 Dataframe ,则模型如下所示:

fit <- bigglm(f, data = df, family=binomial(link="logit"), chunksize=100, maxit=10)

我得到了错误:variable lengths differ (found for 'x')
当我检查x的长度时,它与df的长度完全相同。
其他的StackOverflow问题似乎表明这可能是公式构造方式的问题,或者可能是biglm?的问题

kupeojn6

kupeojn61#

我能够通过对构建bigglm()公式的方式进行轻微修改来解决这个问题
正如我的问题中所附的链接所示,我是这样构造公式的:

n <- names(df)
f <- as.formula(paste("y ~", paste(n[!n %in% "y"], collapse = " + ")))

f缺少的是公式中每个变量名之前的df$。修改as.formula()函数以将"df$"连接到每个变量名,从而修复了此问题。

相关问题