[Rd] Extending [ method to S4 class and drop argument (PR#9211)

Gabor Grothendieck ggrothendieck at gmail.com
Fri Sep 8 18:12:55 CEST 2006


Try this:

> setClass("test",representation(x="character"))
[1] "test"
> setMethod("[","test",function(x,i,j,...,drop) {
+    print(i)
+    if (missing(drop)) drop <- TRUE
+    print(drop)
+ })
[1] "["
> a = new("test",x="fred")
> a[1]
[1] 1
[1] TRUE


On 9/8/06, jverzani at gmail.com <jverzani at gmail.com> wrote:
> Full_Name: John Verzani
> Version: 2.4.0 alpha (2006-09-05 r39134)
> OS: linux, gentoo 2.6.17
> Submission from: (NULL) (163.238.43.26)
>
>
> When extending the "[" method to a new S4 class, the default value for the drop
> argument is not being found. Here is a small example:
>
> setClass("test",representation(x="character"))
> setMethod("[","test",function(x,i,j,...,drop=TRUE) {print(i);print(drop)})
> a = new("test",x="fred")
> a[1]
>
> resulting in:
>
> [1] 1
> Error in print(drop) : argument "drop" is missing, with no default
>
> I'm expecting TRUE for the value of drop. That's correct isn't?
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>




More information about the R-devel mailing list