Hi, From the R Language Definition, Section 3.4.1: "If i is positive and exceeds length(x) then the corresponding selection is NA. A negative out of bounds value for i causes an error." (This is also mentioned in S Programming, footnote of page 24.) Can someone please provide an example triggering the error? Looking in src/main/subscript.c I could not find exception handling for |i| > length(x), unless the negative subscript is mixed with NAs. In other cases, out of bounds negative indexes just seem silently ignored. Did I missed or misinterpreted something, here? Thanks in advance --- Vincent Goulet, Associate Professor ?cole d'actuariat Universit? Laval, Qu?bec Vincent.Goulet at act.ulaval.ca http://vgoulet.act.ulaval.ca
On Fri, May 2, 2008 at 2:23 PM, Vincent Goulet <vincent.goulet at act.ulaval.ca> wrote:> Hi, > > From the R Language Definition, Section 3.4.1: > > "If i is positive and exceeds length(x) then the corresponding selection is > NA. A negative out of bounds value for i causes an error." > > (This is also mentioned in S Programming, footnote of page 24.) > > Can someone please provide an example triggering the error? Looking in > src/main/subscript.c I could not find exception handling for |i| > > length(x), unless the negative subscript is mixed with NAs. In other cases, > out of bounds negative indexes just seem silently ignored. > > Did I missed or misinterpreted something, here?Well, there's this:> a <- 1:10 > a[NA][1] NA NA NA NA NA NA NA NA NA NA> a[-NA][1] NA Hadley -- http://had.co.nz/
On 5/2/2008 3:23 PM, Vincent Goulet wrote:> Hi, > > From the R Language Definition, Section 3.4.1: > > "If i is positive and exceeds length(x) then the corresponding > selection is NA. A negative out of bounds value for i causes an error." > > (This is also mentioned in S Programming, footnote of page 24.) > > Can someone please provide an example triggering the error? Looking in > src/main/subscript.c I could not find exception handling for |i| > > length(x), unless the negative subscript is mixed with NAs. In other > cases, out of bounds negative indexes just seem silently ignored. > > Did I missed or misinterpreted something, here?Looks to me like a documentation error. I would expect from that description that executing > x <- 1:5 > x[7] [1] NA > x[-7] [1] 1 2 3 4 5 would have given an error on x[-7], but clearly it didn't. This behaviour appears to have started with 2.6.0; 2.5.1 gives the error. I don't see a NEWS entry about it...but revision r42123 says Changed the behaviour of out-of-bounds negative subscripts to match that of S. Such values are now ignored rather than tripping an error. so apparently it was intentional. Duncan Murdoch