Ant F
2018-Aug-21 14:31 UTC
[Rd] bug report: inaccurate error message for stats::chisq.test
Hi, `stats::chisq.test` checks that x and y each have at least 2 levels AFTER filtering on complete cases. It makes sense but the error message is misleading : ?'x' and 'y' must have at least 2 levels? Here?s how to reproduce the issue : x <- structure(c(1L, 1L, 1L, 2L, 1L, 2L), .Label = c("0001", "0003"), class = "factor") y <- structure(c(1L, 2L, 2L, NA, 2L, NA), .Label = c("0001", "0002"), class = "factor") chisq.test(x,y) # Error in chisq.test(...) : 'x' and 'y' must have at least 2 levels In this case they do have 2 levels. Best regards, Antoine>[[alternative HTML version deleted]]
Rui Barradas
2018-Aug-22 20:43 UTC
[Rd] bug report: inaccurate error message for stats::chisq.test
Hello, A workaround could be y <- addNA(y) chisq.test(x,y) But this implies that the user was aware of the reason why the error. Hope this helps, Rui Barradas On 21/08/2018 15:31, Ant F wrote:> Hi, > > `stats::chisq.test` checks that x and y each have at least 2 levels AFTER > filtering on complete cases. > > It makes sense but the error message is misleading : ?'x' and 'y' must have > at least 2 levels? > > Here?s how to reproduce the issue : > > x <- structure(c(1L, 1L, 1L, 2L, 1L, 2L), .Label = c("0001", "0003"), > class = "factor") > > y <- structure(c(1L, 2L, 2L, NA, 2L, NA), .Label = c("0001", "0002"), > class = "factor") > > chisq.test(x,y) > > # Error in chisq.test(...) : 'x' and 'y' must have at least 2 levels > > In this case they do have 2 levels. > > Best regards, > > Antoine > >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >--- This email has been checked for viruses by AVG. https://www.avg.com