Hin-Tak Leung wrote: > (I have taken off r-bug@, as multiple e-mails hitting r-bug@ probably > will result in multiple bug reports, knowing most mail server will > retry) > > Tony Plate wrote: > >> The help page for "[" says: >> >> A third form of indexing is via a numeric matrix with the one column >> for each dimension: each row of the index matrix then selects a single >> element of the array, and the result is a vector. Negative indices are >> not allowed in the index matrix. NA and zero values are allowed: rows >> of an index matrix containing a zero are ignored, whereas rows >> containing an NA produce an NA in the result. >> >> So, I think it is behaving as documented. > > > Hmm, fair enough. I guess the NA one make sense (In R as a rule, > NA in, NA out), but I am not sure I understand or agree with > the rationale of silently ignoring (0,x) and (x,0)'s. Any reason for that?
AFAIK, the reason is to make the behavior analogous to how regular indices are treated, e.g.: > x <- array(1:6, dim=2:3) > x[c(0,1),2] [1] 3 > x[cbind(c(0,1),2)] [1] 3 > (i.e., 0's in indices are omitted) -- Tony Plate > > HTL > >> Hin-Tak Leung wrote: >> >>> (e-mailing to R-bugs is intentional - the web itnerface seems to >>> be down) >>> >>> > a<- cbind(c(1,2), c(3,4)) >>> > a >>> [,1] [,2] >>> [1,] 1 3 >>> [2,] 2 4 >>> >>> > a[cbind(c(2,2), c(2,1))] >>> [1] 4 2 >>> > a[cbind(c(2,3), c(2,1))] >>> Error: subscript out of bounds >>> > a[cbind(c(2,-1), c(2,1))] >>> Error: negative values are not allowed in a matrix subscript >>> > a[cbind(c(2,0), c(2,1))] >>> [1] 4 >>> >>> Am somewhat surprised that 2,0 just silently skip over and doesn't >>> throw an error like 2,0 and 2,-1 . Surely it should throw >>> an error about subscript should be >= 1? >>> >>> >>> >>> > sessionInfo() >>> R version 2.4.1 (2006-12-18) >>> i686-redhat-linux-gnu >>> >>> locale: >>> LC_CTYPE=en_GB.UTF-8;LC_NUMERIC=C;LC_TIME=en_GB.UTF-8;LC_COLLATE=en_GB.UTF-8;LC_MONETARY=en_GB.UTF-8;LC_MESSAGES=en_GB.UTF-8;LC_PAPER=en_GB.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_GB.UTF-8;LC_IDENTIFICATION=C >>> >>> >>> >>> attached base packages: >>> [1] "splines" "stats" "graphics" "grDevices" "utils" >>> "datasets" >>> [7] "methods" "base" >>> >>> other attached packages: >>> snpMatrix survival >>> "1.0.4" "2.30" >>> > >>> >>> ______________________________________________ >>> R-devel@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-devel >>> >> > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel