R Under development (unstable) (2023-10-04 r85267 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 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. > library(matrixTests) > source("utils/capture.r") > > #--- hes less than 1 paired observation ---------------------------------------- > > wrn <- 'row_wilcoxon_paired: 1 of the rows had less than 1 paired observation.\nFirst occurrence at row 1' > nacolumns <- c("statistic", "pvalue") > > # no observations > res <- capture(row_wilcoxon_paired(numeric(), numeric())) > stopifnot(all.equal(res$warning, wrn)) > stopifnot(all(is.na(res$value[,nacolumns]))) > stopifnot(all.equal(res$value$obs.x, 0)) > stopifnot(all.equal(res$value$obs.y, 0)) > stopifnot(all.equal(res$value$obs.paired, 0)) > > # x only has NAs > res <- capture(row_wilcoxon_paired(c(NA, NaN, NA), 1:3)) > stopifnot(all.equal(res$warning, wrn)) > stopifnot(all(is.na(res$value[,nacolumns]))) > stopifnot(all.equal(res$value$obs.x, 0)) > stopifnot(all.equal(res$value$obs.y, 3)) > stopifnot(all.equal(res$value$obs.paired, 0)) > > # y only has NAs > res <- capture(row_wilcoxon_paired(1:3, c(NA, NaN, NA))) > stopifnot(all.equal(res$warning, wrn)) > stopifnot(all(is.na(res$value[,nacolumns]))) > stopifnot(all.equal(res$value$obs.x, 3)) > stopifnot(all.equal(res$value$obs.y, 0)) > stopifnot(all.equal(res$value$obs.paired, 0)) > > # both x and y only NA observations > res <- capture(row_wilcoxon_paired(c(NA,NaN,NA), c(NA, NA, NaN))) > stopifnot(all.equal(res$warning, wrn)) > stopifnot(all(is.na(res$value[,nacolumns]))) > stopifnot(all.equal(res$value$obs.x, 0)) > stopifnot(all.equal(res$value$obs.y, 0)) > stopifnot(all.equal(res$value$obs.paired, 0)) > > # no common complete observations > res <- capture(row_wilcoxon_paired(c(1, NA, 3, NA), c(NA, 2, NA, 4))) > stopifnot(all.equal(res$warning, wrn)) > stopifnot(all(is.na(res$value[,nacolumns]))) > stopifnot(all.equal(res$value$obs.x, 2)) > stopifnot(all.equal(res$value$obs.y, 2)) > stopifnot(all.equal(res$value$obs.paired, 0)) > > > #--- ties are present ---------------------------------------------------------- > > wrn <- 'row_wilcoxon_paired: 1 of the rows had ties: cannot compute exact p-values with ties.\nFirst occurrence at row 1' > > # warning when exact=TRUE > res <- capture(row_wilcoxon_paired(c(3,3,1,2), c(2,2,5,-2), exact=TRUE)) > stopifnot(all.equal(res$warning, wrn)) > stopifnot(all.equal(res$value$obs.x, 4)) > stopifnot(all.equal(res$value$obs.y, 4)) > stopifnot(all.equal(res$value$obs.paired, 4)) > > # no warning when exact=FALSE > res <- capture(row_wilcoxon_paired(c(3,3,1,2), c(2,2,5,-2), exact=FALSE)) > stopifnot(all.equal(res$warning, NULL)) > stopifnot(all.equal(res$value$obs.x, 4)) > stopifnot(all.equal(res$value$obs.y, 4)) > stopifnot(all.equal(res$value$obs.paired, 4)) > > > #--- warning about zero values ------------------------------------------------- > > wrn1 <- 'row_wilcoxon_paired: 1 of the rows had observations with "x-y" equal "null" that were removed.\nFirst occurrence at row 1' > wrn2 <- 'row_wilcoxon_paired: 1 of the rows had zeroes: cannot compute exact p-values with zeroes.\nFirst occurrence at row 1' > > # warning when exact = TRUE > res <- capture(row_wilcoxon_paired(1:4, c(0,2,4,3), null=1, exact=TRUE)) > stopifnot(all.equal(res$warning, c(wrn1, wrn2))) > stopifnot(all.equal(res$value$obs.x, 4)) > stopifnot(all.equal(res$value$obs.y, 4)) > stopifnot(all.equal(res$value$obs.paired, 2)) > > # no warning when exact = FALSE > res <- capture(row_wilcoxon_paired(1:4, c(0,2,4,3), null=1, exact=FALSE)) > stopifnot(all.equal(res$warning, wrn1)) > stopifnot(all.equal(res$value$obs.x, 4)) > stopifnot(all.equal(res$value$obs.y, 4)) > stopifnot(all.equal(res$value$obs.paired, 2)) > > # if both ties and zeroes are presnet - only warn about zero > res <- capture(row_wilcoxon_paired(1:5, c(1,1,2,9,9), exact=TRUE)) > stopifnot(all.equal(res$warning, c(wrn1, wrn2))) > stopifnot(all.equal(res$value$exact, FALSE)) > > > proc.time() user system elapsed 0.14 0.10 0.20