[R] S4 "["-method called twice - why?

jim holtman jholtman at gmail.com
Wed Dec 8 13:39:04 CET 2010


I don't think it is being called twice; you are seeing the return
value printed out:

> setClass("testClass",
+                 representation(a="character"))
[1] "testClass"
>
> setMethod("[", signature(x = "testClass", i = "ANY", j="ANY"),
+        function (x, i, j, ..., drop){
+            print("void function")
+            return(NULL)
+        }
+ )
[1] "["
> x <- new("testClass")
> x[1]
[1] "void function"
NULL
>


On Wed, Dec 8, 2010 at 6:41 AM, Mark Heckmann <mark.heckmann at gmx.de> wrote:
> Dear list,
>
> When playing around with the "[" method for S4 classes I noticed that it gets called twice in my example.
>
> setClass("testClass",
>                 representation(a="character"))
>
> setMethod("[", signature(x = "testClass", i = "ANY", j="ANY"),
>        function (x, i, j, ..., drop){
>            print("void function")
>        }
> )
>
>> x <- new("testClass")
>> x[1]
> [1] "void function"
> [1] "void function"
>> x[1,1]
> [1] "void function"
> [1] "void function"
>> x[1,1,1]
> [1] "void function"
> [1] "void function"
>>
>
> Why is that so? Can someone help me understand the logic behind it?
>
> Thanks,
> Mark
>
> –––––––––––––––––––––––––––––––––––––––
> Mark Heckmann
> Blog: www.markheckmann.de
> R-Blog: http://ryouready.wordpress.com
>
> ______________________________________________
> R-help at 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.
>



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?



More information about the R-help mailing list