为什么R source()有时会工作,有时会给出错误

时间:2020-10-08 13:10:44

标签: r

我在一个单独的R脚本中具有API凭据,以使其脱离Git。我想在实际与其他服务器交互的脚本的开头运行此脚本。我已经对所有全局功能成功使用了相同的策略。

setwd("G:/script")
source("API_credentials.R")  # gives always an error 

# > source("API_credentials.R")
# Error: '\s' is an unrecognized escape in character string starting ""g:\s"

source("ProVeg_functions.R") # runs fine

问题:

为什么第一个 source()不起作用,而第二个 source()起作用?错误消息对我来说没有任何意义。

尝试的解决方案:

  1. 我尝试了不同的转义字符\。
  2. 我尝试写完整的路径和文件名。
  3. 我尝试将文件名放入一个变量中,该变量将 dir()搜索中的内容,以确保文件存在并且 名称正确书写。
  4. source()的顺序不会改变情况。
  5. 隔离有错误的代码段,然后重新启动R。
  6. 将我所有的软件包和R升级到了4.0.2版。
  7. 单独运行API_credentials.r脚本可以正常工作。 Sys.setenv()工作正常,我可以使用 Sys.getenv()读取API密钥。
  8. 我不确定是否与我的问题有关,但是如果我 usethis :: edit_r_e​​nviron(),我看不到我的API密钥。

设置 Windows 10,R-Studio 1.3.1093,R版本4.0.2(2020-06-22)

1 个答案:

答案 0 :(得分:0)

我错误地认为该错误消息与调用API_credentials.R的脚本有关,但实际上是一条错误消息,指出了API_credentials.R脚本中的错误。修正了错字,一切都很好。