如何解决R Studio中保护堆栈溢出问题 [英] How to solve 'protection stack overflow' issue in R Studio

查看:13
本文介绍了如何解决R Studio中保护堆栈溢出问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用glmnet包构建模型,但在运行以下行时出现以下错误:

#library('glmnet')
x = model.matrix(response ~ ., data = acgh_frame[,c(3:ncol(acgh_frame))])

Error: protect(): protection stack overflow

我知道这是因为我在数据帧中有大量的变量(26k+)。当我使用较少的变量时,错误不会显示。我知道如何在命令行R中解决这个问题,但我需要留在R Studio中,所以我想从R Studio修复它。 那么,我该怎么做呢?

推荐答案

@Ansjovis86

您可以将ppsize指定为RStudio的命令行参数

rstudio.exe --max-ppsize=5000000

您还可以通过.Rprofile或在运行时使用options(expressions = 5e5)命令设置表达式选项。

> options(expressions = 5e5)
>?options

...

表达式:

设置要计算的嵌套表达式的数量限制。有效值为25...500000,默认为5,000。如果您增加它,您可能还希望从更大的保护堆栈开始R;请参见--max-ppsize in Memory。还请注意,您可能会因C堆栈溢出而导致段错误,并且在可能的OS上,您可能希望增加该值。一旦达到限制,就会抛出错误。调用Cstack_info可以找到当前正在评估的号码。

Cstack_info() - to determine current setting.s

这篇关于如何解决R Studio中保护堆栈溢出问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆