Sorry in advance if this is too simple a question, but I'm stuck with some odd behavior and I can't find the text to rid myself of this (admittedly somewhat trivial) problem. Note that I've done generic programming with S3 "objects" in the past, but I've never really dabbled in creating S4 objects until now.
So, I've created a new S4 class, call it "myclass", e.g. : > setClass("myclass", representation(slot1 = "list")); And I've also created an implementation of "print" for this class via: > setMethod("print", "myclass", function(x) { print(paste("a myclass instance > with a list of length", length(x...@slot1), "in slot1")); }); Now I can create a new object, say via: > myobj <- new("myclass", slot1 = list()); The question now is the difference in output when I type the object name alone on the command prompt vs when I type print(myobj) on the command prompt, as seen below: > myobj An object of class “myclass” Slot "slot1": list() > print(myobj) [1] "a myclass instance with a list of length 0 in slot1" I thought that the "print" method is called when an object is called from the command line, and to check this I checked the registered implementations of "print" via: > methods("print") and in the long output I didn't see the "print.myclass" version. I had thought that the setMethod method would essentially create this function for me... but I must be missing a key step somewhere along the line. Can anyone help me figure out what I would need to do to get the generic version of the method (in this toy example, "print") to see my class' method as an implementation of the generic? Thanks much for any help! ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.