Skip to content
Prev 31215 / 398506 Next

Code bug unresolved involving if condition

On Fri, 25 Apr 2003 vincent.stoliaroff at socgen.com wrote:

            
The test (Matrix[i,j] ==NA) returns NA, not TRUE or FALSE as you expected.
Think of NA as meaning "I don't know what this value is", so you are
asking if Matrix[i,j] is equal to a number that you don't know. The answer
is that R doesn't know whether this is TRUE or FALSE, The value NA in a
logical variable means just that "This is TRUE or FALSE but I don't know
which".  You can use is.na() test for NA, ie

  if(is.na(Matrix[i, j]))


I can't resist also pointing out that for large matrices there is a more
efficient answer

for(i in 1:nrow(Matrix))
	Matrix[i,]<- diff(c(0,cumsum(Matrix[i,])))


	-thomas