I believe it's coming down to the difference between integers and doubles (the computer data types, not the math-y meaning of those terms) -- e.g.,
identical( c(0L, 0L), c(0,0) ) Note that sequences made by `:` provide integers when possible: is.integer(1:5) You may want to use all.equal() instead. Best, Michael On Tue, May 15, 2012 at 11:45 AM, math_daddy <math_da...@hotmail.com> wrote: > Consider the following code: > > test <- function(n) > { > for(x in 1:n) > { > for(y in 1:n) > { > for(r in max(x-1,1):min(x+1,n)) > { > for(s in max(y-1,1):min(y+1,n)) > { > vec <- c(x-r,y-s) > print(c("vec = ", vec)) > print(identical(vec,c(0,0))) > } > } > } > } > } > > If you run test(2) you'll see a printout of the values of the vector vec > followed by a logical telling you whether vec is identical to c(0,0), which > it will be for certain iterations of the nested loop. However, the logical > is always FALSE. If I don't perform the loop but instead assign the values > directly to vec, this problem does not arise. Can anyone tell me what is > happening here? > > Thank you very much in advance for any help. > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Odd-behaviour-of-identical-tp4630118.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.