source()不起作用(“节点堆栈溢出”)

时间:2014-10-03 20:27:12

标签: r

我的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

有什么问题?

2 个答案:

答案 0 :(得分:16)

我没有完全你犯了同样的错误,但是我能够通过一个简单的例子获得非常相似的东西:

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 ......

答案 1 :(得分:5)

您正在寻找您所在的文件。应删除该source()代码行。如果您从另一个R文件中获取一些代码,那么您将使用source()函数,否则不需要另一个文件。此外,如果所有代码都在一个文件中工作而不在其他文件中运行其他代码,则很可能您已经拥有了所需的代码,而且您不需要另外提供文件。