R Under development (unstable) (2024-09-12 r87143) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## [Bug 18654] xyTable fails when both x and y are NA (2024-01-16) > ## https://bugs.r-project.org/show_bug.cgi?id=18654 > ## Attachment 3292 https://bugs.r-project.org/attachment.cgi?id=3292 > ## Scenarios authored by Heather Turner in comments #1 and #5 > > ## Case 2: one variable has NA - works fine > ## (first combination from Case 1 now has NA) > iris2 <- iris[1:10, 3:4] > iris2[3, 1] <- NA > xyTable(iris2) $x [1] 1.4 1.4 1.5 1.5 1.7 NA $y [1] 0.2 0.3 0.1 0.2 0.4 0.2 $number [1] 4 1 1 2 1 1 > > ## Case 3: both x and y are NA for one case - no good > ## (`number` should be the same as for Case 2) > iris3 <- iris[1:10, 3:4] > iris3[3, ] <- NA > xyTable(iris3) $x [1] 1.4 1.4 1.5 1.5 1.7 NA $y [1] 0.2 0.3 0.1 0.2 0.4 NA $number [1] 4 1 1 2 1 1 > > > ## Case 4: both x and y are NA for >1 case - no good > ## (records with both NA are not aggregated) > iris4 <- iris[1:10, 3:4] > iris4[c(3, 5), ] <- NA > xyTable(iris4) $x [1] 1.4 1.4 1.5 1.5 1.7 NA $y [1] 0.2 0.3 0.1 0.2 0.4 NA $number [1] 3 1 1 2 1 2 > > ## Case 5: NA in y when x is duplicated > iris5 <- iris[1:10, 3:4] > iris5[4, 2] <- NA > xyTable(iris5) $x [1] 1.3 1.4 1.4 1.5 1.5 1.5 1.7 $y [1] 0.2 0.2 0.3 0.1 0.2 NA 0.4 $number [1] 1 4 1 1 1 1 1 > > ## Case 6: NA in y when x is duplicated > iris6 <- iris[1:10, 3:4] > iris6[] <- NA > xyTable(iris6) $x [1] NA $y [1] NA $number [1] 10 > > proc.time() user system elapsed 0.156 0.015 0.168