首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C堆栈使用7970960太接近极限。

C堆栈使用7970960太接近极限。
EN

Stack Overflow用户
提问于 2020-11-04 20:33:32
回答 1查看 1.8K关注 0票数 2

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

代码语言:javascript
复制
> exp(1)

我收到了以下错误消息:

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

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

计算会怎样?有人知道如何删除此错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-04 22:46:58

几乎可以肯定,在搜索路径中有一个名为exp的伪函数,它调用自己。它可能在您的工作区(全局环境)中,或者(不太可能,但可能)在您已经加载的包中。(无限递归也有可能是以一种更复杂的方式定义的,即它不是exp()调用自己,而是调用某个调用它的东西.)

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

1“包:基础”

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

代码语言:javascript
复制
exp <- function(x) exp(x)

然后exp(1)会给

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

find("exp")会给

1 ".GlobalEnv“"package:base”

也就是说,在全局环境中有一个exp,R在看到base包中的内置函数之前将看到它。

如果您确实正在进行类似的操作,那么启动一个新的R会话将有所帮助(除非对象在会话启动时恢复的保存工作区中),或者rm("exp")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64687333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档