0

当我运行我的 R 脚本时,它给了我一个错误:

Error in list.files(lib, pattern = paste0("^", pkg, "$"), full.names = TRUE) : 
  invalid 'pattern' regular expression

这个错误是什么意思?脚本的链接是: http: //mzmatch.sourceforge.net/metabolomics/Processing_Code.R

但我一开始就改了几行:

library ("D:\\java projects\\RScriptRunning\\R\\win-library\\2.15\\mzmatch.R")
mzmatch.init (6000)
setwd ("D:\\R_Script\\raw")
4

1 回答 1

3

完全重写了我的答案,因为第一个版本错过了相关点。

当您阅读这样的错误消息时,调用traceback()将告诉您错误发生的位置。在这种情况下,它很可能会识别find.package函数,该函数以某种方式从library函数中调用。它从包名构造路径名,并且不对包名进行转义。因此,在正则表达式中具有特殊含义的符号(可能是反斜杠)将使该正则表达式无效,从而导致错误消息。

原因是您尝试使用其中一个文件的完整路径名加载库。库仅按包名称加载(最有可能library(mzmatch)在您的情况下)。您可以使用source("C:\\some\\path")从给定路径加载和执行 R 源代码,但我不建议对已安装的库这样做。

于 2012-08-11T20:41:09.957 回答