Я пытаюсь создать метод для своего класса, который наследуется от data.frame. Первоначально я надеялся просто унаследовать метод 'show' от data.frame, но я также могу написать свой собственный. Я определил свой класс и метод "show" следующим образом:
setClass("SCvec", representation(auth = "character",
dev = "character",
sensor = "character",
channel = "character",
starttime = "character",
endtime = "character"),
contains="data.frame")
setMethod("show", signature(x="SCvec"), function(x) print(x))
когда я набираю show
в консоли R, он выводит:
StandardGeneric для "show", определенного из "methods" пакета
function (object)
standardGeneric("show")
<bytecode: 0x0396bee8>
<environment: 0x0393ab60>
Methods may be defined for arguments: object
Use showMethods("show") for currently available ones.
(This generic function excludes non-simple inheritance; see ?setIs)
Так что, похоже, мне не нужно превращать его в дженерик, используя StandardGeneric(). но когда я запускаю свою строку setMethod("show", signature(x="SCvec"), function(x) print(x))
, я получаю сообщение об ошибке
Error in match.call(definition, call, expand.dots) :
unused argument(s) (x = c("SCvec", ""))
Я определил этот метод так же, как и любой другой. Почему это определение метода не работает? Отличается ли show от других универсальных функций?