我正在定义一个通用函数
genfun <- function(x, ...)
UseMethod("genfun")
应该有两个实例: genfun.default(如果x是矩阵) genfun.formula(如果x是公式)
这样可以正常工作,但是现在我希望在发送之前有这个,如果x是一个字符串,它就会被强制成公式。
不幸的是,以下内容不起作用
genfun <- function(x, ...) {
if (is.character(x)) x <- as.formula(x)
UseMethod("rlasso")
}
有没有办法处理这个问题,而没有定义更多的实例 genfun.character?
非常感谢您的帮助!
最佳,
马丁
答案 0 :(得分:1)
我在想这样的事情(虽然正确的方法是定义另一种方法)。
genfun <- function(x, ...)
UseMethod('genfun')
genfun.default <- function(x, ...) {
if (is.character(x)) {
x <- as.formula(x)
return(genfun(x))
}
dim(x)
}
genfun.formula <- function(x, ...) {
message('using formula method')
## do something
}
genfun(mtcars)
# [1] 32 11
genfun(y ~ x)
# using formula method
genfun('y ~ x')
# using formula method