如何在R中处理“找不到函数”错误?


“找不到函数”错误由以下原因导致:

  • 函数名称不正确。请记住,R中的函数名称区分大小写。

  • 包含该函数的包未安装。在使用任何包中的函数之前,必须先在R中安装这些包。可以使用`install.packages("package_name")`进行安装。

  • 在使用函数之前未加载该包。要使用包中包含的函数,需要加载该包,可以使用`library("package_name")`进行加载。

  • R的版本过旧,导致您使用的函数不存在。

如果您安装并加载了许多包,但忘记了哪个包包含您正在使用的函数,可以使用`getAnywhere`函数查找。

示例

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

以下对象被‘package:datasets’中的对象遮蔽:

Orange

> 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,但想使用为新版本创建的函数进行计算,则这是不可能的。但是,如果您使用backports包使新添加的函数可用于旧版本的R,则可以实现。您还需要在backports的git仓库中找到需要回传的函数列表。请记住,R 3.0.0之前的版本与为R 3.0.0及更高版本构建的包不兼容。

更新于:2020年7月6日

9000+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.