#r #s4
Вопрос:
У меня есть класс S3, в котором есть методы для большинства математических и операционных обобщений, и я хотел бы, чтобы он также работал %*%
. Почему это не работает?
setOldClass("foo")
setMethod("%*%", signature(x = "foo", y = "foo"),
function(x, y) { "foo-foo" })
x <- structure(list(), class = "foo")
y <- structure(list(), class = "foo")
x %*% y
#> Error in x %*% y: requires numeric/complex matrix/vector arguments
Комментарии:
1. После внутреннего обсуждения с некоторыми знающими коллегами мы пришли к выводу, что сегодня это невозможно (R 4.1 является текущей версией). По крайней мере, один из объектов
x
илиy
должен быть объектом S4 для отправки на работу.2. Возможно, некоторые разумные призывы к
setOldClass
тому, чтобы это сработало?