From ggrothendieck at myway.com  Wed Oct 27 06:39:51 2004
From: ggrothendieck at myway.com (Gabor Grothendieck)
Date: Wed Oct 27 06:40:06 2004
Subject: [Rd] NextMethod ignoring changed argument
Message-ID: <20041027043951.7E9B23982@mprdmxin.myway.com>



Is this a bug?  We define the [ operator for class test.
All it does is force drop to be FALSE and then calls
the NextMethod.  If we specify drop= in the call then 
it works as expected (### 2 and ### 3) but if we do not
specify drop (### 1) then it acts as if drop=TRUE
even though we have set it to FALSE within [.test .

> "[.test" <- function(x, i, j, drop = TRUE) { 
+ drop <- FALSE
+ NextMethod("[") 
+ }
> x <- structure(matrix(1:12, 4, 3), class = "test")

> x[1,]  ### 1 - why does it ignore drop=FALSE in [.test ????
[1] 1 5 9

> x[1,,drop = TRUE]  ### 2 - ok
     [,1] [,2] [,3]
[1,]    1    5    9
> x[1,,drop = FALSE]  ### 3 - ok
     [,1] [,2] [,3]
[1,]    1    5    9
> R.version.string # windows XP
[1] "R version 2.0.0, 2004-10-04"


[Rd] NextMethod ignoring changed argument
Gabor Grothendieck