+
обычно выбрасывает non-numeric argument to binary operator
при наличии чего-то другого, кроме числа. Но он работает с ggplot2, вставляя сюжет вместе. В то же время он сохраняет свою обычную функцию вне контекста ggplot2 (например, как оператор арифметики или формулы), поэтому его версия ggplot2 не противоречит ни одному из них.Как определяется оператор ggplot2 plus?
Я хочу понять, как сделать +
так себя вести. Просмотрев ggplot2 github repo, я нашел определения функций для +.gg
и %+%
, но это не сделало меня более ясными.
Я был бы рад указателю на код в пакете ggplot2, который делает это, или обобщенное объяснение того, как это делается.
Спасибо. Мне не ясно, что имя функции '+ .gg', но мы не используем' + .gg', мы используем просто '+'. Как R знает, чтобы называть '+ .gg', если это то, что происходит? – jakub
Это из-за [S3 классов] (http://adv-r.had.co.nz/S3.html). И все, что является вызовом функции в R (try '+' (с кавычками)), 'ggplot2'" просто "расширяет метод' + 'до объекта класса' gg'. –
Хм, увидев там '.', это должно было указывать мне в правильном направлении! Не могли бы вы узнать, где определение класса в репозитории ggplot2? – jakub