Я относительно новичок в ООП и нуждаюсь в совете: что является лучшим способом перегрузить генераторы Арифметики в ссылочных классах в R?Перегрузка оператора в эталонных классах R
Например, предположим, что я определяю
bar <- setRefClass("foo", fields=list(a="numeric", b="numeric"))
Если я пытаюсь очевидную вещь:
> bar$new(a=3,b=1) + bar$new(a=1,b=3)
Error in bar$new(a = 3, b = 1) + bar$new(a = 1, b = 3) :
non-numeric argument to binary operator
Что такое рекомендуемый способ сделать что-то подобное (а + а) + (b + Ь)?
Я не могу на всю жизнь понять, что вы хотели сделать, но посмотрите: 'rab <- bar $ new (a = 3, b = 1); класс (раб); rab $ a будет указывать на пару проблем. Вам нужно будет определить метод '+', который разрывает ваши объекты и связывает их вместе. Если у вас нет необходимости взаимодействовать с языком ООП, я бы рекомендовал избегать «RefClass» и использовать стандартные классы и методы класса «R». –
Я работаю с массивными наборами данных, поэтому использование стандартного R с его псевдо-копировальными методами вызывает головные боли памяти. Справочные классы чрезвычайно полезны для этой проблемы, и я нахожу их чрезвычайно полезными. В сочетании с data.table, я могу реплицировать многие из объектов в sqldf и ff с минимальными усилиями. –