gpt4 book ai didi

r - 这是什么意思 : unable to find an inherited method for function ‘A’ for signature ‘"B"’

转载 作者:行者123 更新时间:2023-12-03 12:13:43 24 4
gpt4 key购买 nike

我是 R 的新手,并且不断收到以下消息的错误:

unable to find an inherited method for function ‘A’ for signature ‘"B"’



在大多数情况下,我已经能够通过在线查找替代示例来解决我的问题,但我想了解错误消息的含义,以便更好地了解 R 的工作原理。

例如,这段代码:
library("RSQLite")
con = dbConnect(drv="SQLite", dbname="database.db")

生成此警告:

unable to find an inherited method for function ‘dbConnect’ for signature ‘"character"’



修复该错误后,此代码:
dbClearResult(p1)

产生此警告:

unable to find an inherited method for function ‘dbClearResult’ for signature ‘"data.frame"’



有人可以解释一下这种类型的错误消息试图告诉我什么吗?

具体来说,术语“interhited”、“method”、“function”和“signature”似乎都与我从其他语言中理解的概念有关,但是这个错误的句子结构意味着它们在 R 中的含义略有不同。

最佳答案

这是当您尝试将 S4 泛型函数应用于不存在已定义 S4 方法(或至少已附加到当前 R session )的类的对象时,您将获得的消息类型。

这是使用 的示例光栅 包(用于空间栅格数据),其中充满了 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"’

关于r - 这是什么意思 : unable to find an inherited method for function ‘A’ for signature ‘"B"’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36943201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com