Hello,
i am trying to understand the difference between S3 function print and
S4 method.
My main problem is that i need to count the environment ("frames") (i
use /eval/() afterwards with /parent.frame/() ).
If I use a S4 method/print/, a 'hidden' environment seem to appears.
It is not the case, with generic methods declared in the methods package
such as /show/ .
I would like to understand the difference and how to declare them in a
namespace (avoiding this +1 frame if possible).
Here a small example:
setClass('test',
representation=representation(a="numeric"))
testobject <- new(Class='test', a=1)
setMethod("show",
signature='test',
definition=function(object){
aa <- sys.nframe()
print(aa)
})
testobject ##show : 2
print.test <- function(x){
aa <- sys.nframe()
print(aa)
}
print(testobject) #2
setMethod("print",
signature='test',
definition=function(x){
aa <- sys.nframe()
print(aa)
})
print(testobject) # 3, what happened?
Thanks,
Alice Julien-Laferriere
[[alternative HTML version deleted]]