源()不工作(“节点堆栈溢出”)
我在[R脚本代码下面几行称为assign1.R
:只有源()不工作(“节点堆栈溢出”)
(u <- c(1, 1, 0, 1, 0)) # a)
u[3] # b)
ones_u <- which(u == 1) # c)
ones_u
source("assign1.R")
,该source()
功能不起作用。 R向我显示以下错误消息:
Error in match(x, table, nomatch = 0L) : node stack overflow
Error during wrapup: node stack overflow
问题是什么?
我没有得到确切你做了同样的错误,但我能得到一个简单的例子非常相似的东西:
writeLines("source('badsource.R')",con="badsource.R")
source("badsource.R")
## Error in guess(ll) : node stack overflow
如上各国的意见之一,你的文件'重新采购正在尝试source()
本身。
这是你将如何测试从R内这种可能性,而不只是打开一个文本编辑器文件(这是一个更明智的做法):
grepl("source('badsource.R')",readLines("badsource.R"),fixed=TRUE) ## TRUE
(显然你应该填写这里命名你的作业文件的...)
这感觉就像是你应该已经注意到了这个自己,但我无论如何回答,因为这个问题是delightfully recursive ...
我想将其作为重复关闭,但它不在列表中 – baptiste 2014-10-03 23:07:28
可能是因为这是重复自身的问题。 – 2014-10-03 23:57:44
不幸的是,SO太聪明了,无法在自己的“链接”部分列出此问题... – 2014-10-04 00:05:34
你的采购,你是该文件in。那个source()l应该删除代码。如果您从另一个R文件获取一些代码,那么您将使用source()函数,否则不需要另外提供源文件。另外,如果所有代码都在一个文件中运行,而没有在其他文件中运行其他代码位,则很可能您已经拥有了您需要的代码,并且您不需要另外获取其他文件。
我能问你到底发生了什么吗? – joran 2014-10-03 20:37:16
我们怎么可能知道,没有看到assign1.R中的代码? – digEmAll 2014-10-03 20:40:56
所以你的代码反复调用自己?我认为这将是原因。 – stanekam 2014-10-03 20:42:08