Преобразование типов перед отправкой
Я определяю общую функцию
genfun <- function(x, ...)
UseMethod("genfun")
которые должны иметь экземпляры tow: genfun.default (если x - матрица) genfun.formula (если x - формула)
Это работает нормально, но теперь я хотел бы иметь это до отправки, что если x является строкой charcter, она должна быть формулой.
К сожалению, следующее не работает
genfun <- function(x, ...) {
if (is.character(x)) x <- as.formula(x)
UseMethod("rlasso")
}
Есть ли способ справиться с этим без определения следующего экземпляра, такого как genfun.character?
Большое спасибо за вашу помощь заранее!
Лучший,
Мартин
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