我是 R 新手,不断收到错误并显示以下消息:
无法找到签名“B”的函数“A”的继承方法
在大多数情况下,我已经能够通过在线查找替代示例来解决我的问题,但我想了解错误消息的含义,以便我可以更好地理解 R 的工作原理。
例如,这段代码:
library("RSQLite")
con = dbConnect(drv="SQLite", dbname="database.db")
生成此警告:
无法找到签名“character”的函数“dbConnect”的继承方法
修复该错误后,这段代码:
dbClearResult(p1)
产生此警告:
无法找到签名“data.frame”的函数“dbClearResult”的继承方法
有人可以解释一下这种类型的错误消息试图告诉我什么吗?
具体来说,术语“interhited”、“方法”、“函数”和“签名”似乎都与我从其他语言中理解的概念相关,但这个错误的句子结构暗示它们在 R 中的含义略有不同。
这是当您尝试将 S4 通用函数应用于不存在定义的 S4 方法(或至少已附加到当前 R 会话)的类的对象时,您将收到的消息类型。
这是一个使用的示例raster包(用于空间栅格数据),其中充满了 S4 函数。
library(raster)
## raster::rotate() is an S4 function with just one method, for "Raster" class objects
isS4(rotate)
# [1] TRUE
showMethods(rotate)
# Function: rotate (package raster)
# x="Raster"
## Lets see what happens when we pass it an object that's *not* of class "Raster"
x <- 1:10
class(x)
# [1] "integer"
rotate(x)
# Error in (function (classes, fdef, mtable) :
# unable to find an inherited method for function ‘rotate’ for signature ‘"integer"’
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)