Hello,
I noticed a difference between S4 methods and ordinary methods for sys.calls(),
where it seems to report everything twice for S4 methods. This seems strange. Am
I overlooking something ?
> f <- function(x)
+ {
+ g(x)
+ }>
> g <- function(y)
+ {
+ cat(y, '\n')
+ sys.calls()
+ }>
> f(5)
5
[[1]]
f(5)
[[2]]
g(x)
>
>
> setGeneric("conv", signature = c("x"),
function(x){standardGeneric("conv")})
[1] "conv">
> setMethod("conv", "character", function(x)
+ {
+ conv(as.numeric(x))
+ })
[1] "conv">
> setMethod("conv", "numeric", function(x)
+ {
+ cat(x, '\n')
+ sys.calls()
+ })
[1] "conv">
> conv("5")
5
[[1]]
conv("5")
[[2]]
conv("5")
[[3]]
conv(as.numeric(x))
[[4]]
conv(as.numeric(x))
>
> sessionInfo()
R version 2.12.2 (2011-02-25)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252
LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
LC_TIME=English_Australia.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
--------------------------------------
Dario Strbenac
Research Assistant
Cancer Epigenetics
Garvan Institute of Medical Research
Darlinghurst NSW 2010
Australia