【发布时间】:2019-08-07 07:51:59
【问题描述】:
我有三个函数,一个函数是使用 useMethod() 由另外两个函数组成的。
logReg <- function(x, ...) UseMethod("logReg")
logRec.numeric <- function(x, y) {
print(x)
}
logReg.formula <- function(formula, data) {
print(formula)
}
我的功能有点复杂,但对我的问题无关紧要。我希望 logReg 给我额外的原始函数调用作为输出(不是 logReg.numeric 或 logReg.formula 的函数调用)。我的第一次尝试是:
logReg <- function(x, ...) {
out <- list()
out$call <- match.call()
out
UseMethod("logReg")
}
但它不起作用。谁能给我一个提示如何解决我的问题?
【问题讨论】:
-
你的参数不匹配,方法参数必须匹配通用参数
-
而不是
out列表使用on.exit函数结合returnValue -
工作示例,我用它来捕获返回值的
nrow,但我也将match.call保留在那里:github.com/jangorecki/dtq/blob/… -
如果你想去掉
.numeric后缀,只需修改语言对象substr和as.name -
如果您设法使其工作,请自行回答您的问题,因为可能其他人也有同样的问题。我没有发布答案,因为我正在打电话。