小编典典

Error: could not find function ... in R

all

我正在使用 R 并尝试过some.function,但收到以下错误消息:

Error: could not find function "some.function"

这个问题经常出现。当你在 R 中遇到这种类型的错误时,你如何解决它?


阅读 116

收藏
2022-07-02

共1个答案

小编典典

您应该检查几件事:

  1. 您是否正确编写了函数的名称?名称区分大小写。
  2. 您是否安装了包含该功能的软件包?install.packages("thePackage")(这只需要做一次)
  3. 您是否将该包附加到工作区? require(thePackage)(并检查它的返回值)或library(thePackage)(每次开始新的 R 会话时都应该这样做)
  4. 您是否使用尚不存在此功能的旧 R 版本?
  5. 您是否使用不同版本的特定?这可能是任何一个方向:随着时间的推移添加和删除函数,并且您引用的代码可能需要比您安装的包的更新或旧版本。

如果您不确定该功能位于哪个包中,您可以做一些事情。

  1. 如果您确定您安装并附加/加载了正确的包,请键入help.search("some.function")??some.function获取一个信息框,该框可以告诉您它包含在哪个包中。
  2. findgetAnywhere可用于定位功能。
  3. 如果您对包一无所知,可以按照此答案中的说明在包中findFn使用。sos
  4. RSiteSearch("some.function")或使用rdocumentationrseek搜索是查找函数的替代方法。

有时您需要使用旧版本的 R,但运行为新版本创建的代码。新添加的函数(例如 R 3.4.0 中的 hasName)将不会被找到。如果您使用较旧的 R 版本并希望使用较新的功能,您可以使用包backports使此类功能可用。您还可以在 backports 的git 存储库中找到需要反向移植的函数列表。请记住,早于 R3.0.0 的 R 版本与为 R3.0.0 和更高版本构建的包不兼容。

2022-07-02