Skip to content
Prev 55663 / 63421 Next

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