Я пытаюсь написать метод rbind
для определенного класса. Вот простой пример, где он не работает (по крайней мере для меня):
rbind.character <- function(...) {
do.call("paste", list(...))
}
После ввода этой функции я, по-видимому, могу подтвердить, что это допустимый метод, о котором знает R:
> methods("rbind")
[1] rbind.character rbind.data.frame rbind.rootogram* rbind.zoo*
see '?methods' for accessing help and source code
Однако он не распознается, если я пытаюсь его использовать:
> rbind("abc", "xyz")
[,1]
[1,] "abc"
[2,] "xyz"
> #### compared with ####
> rbind.character("abc", "xyz")
[1] "abc xyz"
На странице справки говорится, что отправка выполняется внутренне следующим образом:
- Для каждого аргумента мы получаем список возможных классовых членств из атрибут класса.
- Мы поочередно проверяем каждый класс, чтобы убедиться, что Метод.
- Если мы найдем применимый метод, убедитесь, что он идентичен любой метод, определенный для предыдущих аргументов. Если он идентичен, мы продолжайте, иначе мы сразу же перейдем к стандартным кодом.
С rbind("abc", "xyz")
, я считаю, что все эти критерии выполнены. Что дает, и как я могу это исправить?