Skip to content
Prev 60139 / 398502 Next

about the subscript assignment porblem

On Tue, 30 Nov 2004, kh zu wrote:

            
What would happen?  In version 1.9.0 (I don't have a 1.9.1 lying around) 
you get a warning if any of the subscripts are FALSE
   > x<-1:3
   > y<-7:9
   > x[c(TRUE,NA,FALSE)]<-y
   Warning message:
   number of items to replace is not a multiple of replacement length

and if all the subscripts are TRUE or NA the NAs are treated as FALSE

   > x<-1:3
   > y<-7:9
   > x[c(TRUE,NA,TRUE)]<-y
   > x
   [1] 7 2 9


The change was largely motivated by numerical indices, where the problem 
is worse.   In particular if x is 1,2,3, i is 1, NA, 2  and y is 7,8,9, 
should
    x[i] <- y
set the second element of x to 8 or 9?  The answer was different for 
vectors and matrices in 1.9.1.

It was clearly a deliberate change, not a mistake (it's hard to see how it 
could have happened accidentally, and it was documented), and the previous 
behaviour was wrong.


 	-thomas