我试图在RStudio中计算一个简单的指数函数,
> exp(1)我收到了以下错误消息:
错误:C堆栈使用7970960太接近极限
现在我不能再在RStudio中运行任何指数计算了,但是昨晚一切都很好!我试着在普通的R里做这件事,它很有效。太奇怪了。我试图扩大终端的限制(我正在使用Mac),但这似乎并不是永久的。
计算会怎样?有人知道如何删除此错误吗?
发布于 2020-11-04 22:46:58
几乎可以肯定,在搜索路径中有一个名为exp的伪函数,它调用自己。它可能在您的工作区(全局环境)中,或者(不太可能,但可能)在您已经加载的包中。(无限递归也有可能是以一种更复杂的方式定义的,即它不是exp()调用自己,而是调用某个调用它的东西.)
find("exp")的正常预期结果是
1“包:基础”
假设您在工作区中定义了一个递归exp函数:
exp <- function(x) exp(x)然后exp(1)会给
错误:C堆栈使用7969716太接近极限
find("exp")会给
1 ".GlobalEnv“"package:base”
也就是说,在全局环境中有一个exp,R在看到base包中的内置函数之前将看到它。
如果您确实正在进行类似的操作,那么启动一个新的R会话将有所帮助(除非对象在会话启动时恢复的保存工作区中),或者rm("exp")。
https://stackoverflow.com/questions/64687333
复制相似问题