r-C堆栈使用7970960太接近极限



我试图在RStudio中计算一个简单的指数函数,作为

> exp(1)

我收到以下错误信息:

错误:C堆栈使用7970960太接近限制

现在我不能再在RStudio中运行任何指数计算了,但昨晚一切都很好!我试着用普通的R来做,效果很好。太奇怪了。我试图在终端中扩大限制(我使用的是Mac(,但这似乎并不是永久的。。

计算会发生什么?有人知道如何消除这个错误吗?

几乎可以肯定,在您的搜索路径中的某个地方有一个名为exp的伪函数,它调用自己。它可能在您的工作区(全局环境(中,也可能(可能性较小但可能(在您加载的包中。(也有可能无限递归是以一种更复杂的方式定义的,即与其exp()调用自己,不如调用回调用它的东西…(

find("exp")的正常预期结果是

[1]";包装:基本;

假设您在工作区中定义了一个递归exp函数:

exp <- function(x) exp(x)

然后exp(1)会给出

错误:C堆栈使用7969716太接近限制

find("exp")将给出

[1]";。GlobalEnv"包装:基本;

即,R在看到base包中的内置函数之前,将在全局环境中看到一个exp

如果确实发生了类似的情况,启动一个新的R会话会有所帮助(除非对象位于已保存的工作区中,该工作区在会话启动时会被恢复(,或者rm("exp")

最新更新