Я хотел бы реализовать функцию :=(lhs, rhs)
, которая принимает любое выражение для lhs
, тогда как rhs
должно быть класса X
.
. чтобы избежать конфликтов с другими пакетами (например, data.table
), через setGeneric(":=")
должна быть настроена обобщенная c функция :=
, которая отправляет данные на основе класса второго аргумента.
Однако
setMethod(
":="
, c("ANY", "X")
, function(lhs, rhs) NULL
)
предполагает, что первый аргумент является фактическим объектом, то есть bla := x
приводит к
Ошибка в :=
(bla, x): объект 'bla' не найден
всякий раз, когда bla
не связан.
Есть ли способ определить такую функцию, не влияя на поведение других реализаций с тем же именем, когда второй аргумент класса X
?
Примечание: :=
не может быть определен как соответствующий S3 generi c, поскольку он отправляется в lhs
вместо rhs
.