我的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
有什么问题?
答案 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()函数,否则不需要另一个文件。此外,如果所有代码都在一个文件中工作而不在其他文件中运行其他代码,则很可能您已经拥有了所需的代码,而且您不需要另外提供文件。