>>>>> Martin Maechler <maech...@stat.math.ethz.ch> >>>>> on Mon, 15 Aug 2016 11:07:43 +0200 writes:
>>>>> Suharto Anggono Suharto Anggono <suharto_angg...@yahoo.com> >>>>> on Sun, 14 Aug 2016 03:42:08 +0000 writes: >> useNA <- if (missing(useNA) && !missing(exclude) && !(NA %in% exclude)) "ifany" >> An example where it change 'table' result for non-factor input, from https://stat.ethz.ch/pipermail/r-help/2005-April/069053.html : >> x <- c(1,2,3,3,NA) >> table(as.integer(x), exclude=NaN) >> I bring the example up, in case that the change in result is not intended. > Thanks a lot, Suharto. > To me, the example is convincing that the change (I commited > Friday), svn rev 71087 & 71088, are a clear improvement: > (As you surely know, but not all the other readers:) > Before the change, the above example gave *different* results > for 'x' and 'as.integer(x)', the integer case *not* counting the NAs, > whereas with the change in effect, they are the same: >> x <- as.integer(dx <- c(1,2,3,3,NA)) >> table(x, exclude=NaN); table(dx, exclude=NaN) > x > 1 2 3 <NA> > 1 1 2 1 > dx > 1 2 3 <NA> > 1 1 2 1 >> > -- > But the change has affected 6-8 (of the 8000+) CRAN packages > which I am investigating now and probably will be in contact with the > package maintainers after that. There has been another bug in table(), since the time 'useNA' was introduced, which gives (in released R, R-patched, or R-devel): > table(1:3, exclude = 1, useNA = "ifany") 2 3 <NA> 1 1 1 > and that bug now (in R-devel, after my changes) triggers in cases it did not previously, notably in table(1:3, exclude = 1) which now does set 'useNA = "ifany"' and so gives the same silly result as the one above. The reason for this bug is that addNA(..) is called (in all R versions mentioned) in this case, but it should not. I'm currently testing yet another amendment.. Martin ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel