如何处理R中的“找不到函数(could not find function)”错误?

由于以下原因,发生错误“找不到功能”-

  • 函数名称不正确。始终记住,函数名称在R中区分大小写。

  • 尚未安装包含该功能的软件包。在使用包中包含的任何功能之前,我们必须在R中安装一次包。可以作为install.packages(“ package_name”)完成

  • 使用该功能之前未加载软件包。要使用包中包含的功能,我们需要加载该包,并且可以将它作为library(“ package_name”)完成。

  • 如果您使用的功能不存在,则R版本较旧。

如果您已经安装并加载了许多软件包,但是忘记了哪个软件包包含您正在使用的功能,则可以使用getAnywhere来完成

示例

> library(ggplot2)
> library(BSDA)
Loading required package: lattice
Attaching package: ‘BSDA’

以下对象被'package:datasets'屏蔽-

橙子

> library(purrr)
> getAnywhere(ggplot)
A single object matching ‘ggplot’ was found
It was found in the following places
package:ggplot2
namespace:ggplot2
with value
function (data = NULL, mapping = aes(), ..., environment = parent.frame()){
   UseMethod("ggplot")
}
<bytecode: 0x0000000011201848>
<environment: namespace:ggplot2>

在这里,我们加载了三个软件包,分别为ggplot2,BSDA和purr。假设我们想知道哪个软件包包含ggplot函数。因此,我们使用了getAnywhere,它将包名称返回为ggplot2。

您应确保不要犯上述错误。如果您使用的是R的较旧版本,但想使用为较新版本创建的函数执行计算,则将不可能。但是,如果您使用包反向移植使新添加的功能可用于旧版本的R,则变为可能。此外,您还需要在反向移植的git repo上找到需要反向移植的功能列表。请记住,早于R3.0.0的R版本与为R3.0.0和更高版本构建的软件包不兼容。