这对我来说真的是个谜。我已经这样定义了我的方法(对于“graf”类):
addStatistics <- function(x) UseMethod("addStatistics")
addStatistics.graf <- function (x, stat_name = NULL, value = NULL)
{
if (stat_name == "env_coef_delta_mnll") {
x$env_coef_delta_mnll <- value
}
x
}
我正在调用这样的方法,并收到一个错误:
addStatistics(m, "env_coef_delta_mnll", 0)
#Error in addStatistics(m, "env_coef_delta_mnll", 0) :
# unused arguments ("env_coef_delta_mnll", 0)
为什么该方法不接受那些提供的参数并说它们“未使用”?
最佳答案
这是解决问题的方法。显然你正在创建一个 setter 函数,所以我会稍微改变一下泛型。
`addStatistics<-` <- function(x, ...) UseMethod("addStatistics<-")
`addStatistics<-.graf` <- function (x, stat_name = NULL, value = NULL)
{
if (stat_name == "env_coef_delta_mnll") {
x$env_coef_delta_mnll <- value
}
x
}
as.graf <- function(x){
class(x) <- "graf"
x
}
x <- as.graf(list())
addStatistics(x, "env_coef_delta_mnll") <- 1234
x
#$env_coef_delta_mnll
#[1] 1234
#
#attr(,"class")
#[1] "graf"
关于r - 使用方法时的 "unused arguments"错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60327087/