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

7xllpg7q  于 2023-04-03  发布在  其他
关注(0)|答案(3)|浏览(140)

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

出了什么问题?

62lalag4

62lalag41#

我没有得到和你完全一样的错误,但是我可以用一个简单的例子得到类似的东西:

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

piwo6bdm

piwo6bdm2#

您正在查找您所在的文件的源。该源()行代码应该被删除。如果你从另一个R文件中获取一些代码,那么你应该使用源代码()函数,否则不需要源另一个文件。此外,如果所有代码在一个文件中工作,而不运行其他文件中的其他代码位,很可能你已经有了你需要的代码,你不需要再去源另一个文件。

zwghvu4y

zwghvu4y3#

当我运行source("myfile.R")时,我遇到了同样的"node stack overflow"错误,我花了几个小时才弄清楚是什么导致了它,最终我能够通过消除来做到这一点(逐行消除我在“myfile.R”中的代码)
这就是我的发现:
事实上(正如这个问题的其他答案所指出的那样)还有另一行source ("myfile.R"),但是我在FALSE if语句中有,如下所示:

# myfile.R 
# Bunch of useful functions goes below 
...

# Then in the end of the file I have a block of "commented out" codes to test these functions. However I use `if (F)` to comment them out  (not `#` sign)

if (F) {
  source ("myfile.R")
  # testing my functions  below
}

所以,很明显,即使它在if语句的FALSE部分,当我从rmarkdown编译代码时,它仍然试图访问FALSE部分中的代码!-导致无限调用和错误消息。
一旦我删除了这一行(实际上使用#取消注解,错误就消失了)。我倾向于相信这可能是knitr,rmarkdown或flexdashboard的错误-他们首先从所有源文件组装代码,然后执行代码的实际执行(如运行if语句)
为了完整起见,我从rmarkdown文件中获取了myfile.R:
x一个一个一个一个x一个一个二个x
sessionInfo()R版本4.2.2(2022-10-31 ucrt)平台:x86_64-w 64-mingw 32/x64(64位)运行环境:Windows 10 x64(内部版本号19044)
基质产品:默认值
locale:[1] LC_COLLATE=English_Canada.utf8 [2] LC_CTYPE=English_Canada.utf8
[3]LC_MONETARY=English_Canada.utf8 [4] LC_NUMERIC=C
[5]LC_TIME=加拿大英语. utf8
随附基础 Package :[1]统计图形grDevices utils datasets methods
[7]基底
其他随附 Package :[1] flexdashboard_0.6.1 DBI_1.1.3 shinyBS_0.61.1
[4]shinybusy_0.3.1 shiny_1.7.3 readxl_1.4.1
[7]glue_1.6.2 R6_2.5.1,适用于cats_0.5.2
[10]stringr_1.4.1 DT_0.27 plotly_4.10.1
[13]data.table_1.14.6 lubridate_1.9.0 timechange_0.1.1
[16]ggplot2_3.4.0 magrittr_2.0.3

相关问题