如何在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.