【问题标题】:How to run bigglm function for large number of variables如何为大量变量运行 bigglm 函数
【发布时间】:2023-03-28 12:40:02
【问题描述】:

ffbase (http://cran.r-project.org/web/packages/ffbase/ffbase.pdf) 中有bigglm 函数:

bigglm.ffdf(formula, data, family = gaussian(), ...,

其中formula 类似于Y~X,假设YX 对应于称为ffdfffdf 对象的colnamesdata

如果我想将 data 中的 200 列放在等式的 RHS 上怎么办?显然我不能输入Y~X1+X2+....+X200

如何运行Y~X1+X2+....+X200 而不在 RHS 上输入所有 200 个变量?

【问题讨论】:

    标签: r memory-management bigdata


    【解决方案1】:

    . 符号是正常的字符,但不确定它是否适用于 ffbase。即

    m <- lm(y ~ ., df)
    

    将在df 中的所有其他列中描述y

    正如 Chris 所述,这似乎是 biglm 中的一个错误,可以通过以下方式解决:

    m <- bigglm(terms(y ~ ., data=df), data=df)
    

    但这应该作为一个错误报告给biglm的作者。

    【讨论】:

    • 很遗憾不起作用Error in terms.formula(formula) : '.' in formula and no 'data' argument
    • 我会尝试给它一个 data 参数,即你想从哪个大数据框中获取“其他”列
    • 我运行z &lt;- bigglm(V1~.,data=together) 给出了错误。如果我运行z &lt;- bigglm(V1~V2,data=together),其中V2 是列名之一,那么它将起作用。
    • 刚刚尝试安装软件包,并得到相同的...假设它不支持这种语法,真烦人。试试@Christopher 的方法。
    • @SamMason:我很好奇为什么没有Y ~ . 所以我查看了源代码。原来,ffbase的作者在写bigglm函数时,并没有将data参数传递给terms函数。
    【解决方案2】:

    如果山姆的答案不起作用,您可以构建一个表示公式的字符串,然后将其转换为公式:

    formula <- as.formula(paste('Y', paste(paste('', 
           paste('X', 1:200, sep = ''), sep = '', collapse = ' + ')), sep = ' ~ '))
    

    内部paste 创建X1X200。下一个粘贴将结果向量折叠成一个字符串,其中第一个 paste 的元素与 + 放在一起。最后一个paste 添加到Y ~。最后,我把它从字符串改成了公式。

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 2023-01-04
      • 2015-09-04
      • 1970-01-01
      • 2021-09-06
      相关资源
      最近更新 更多