suppressMessages(library(dplyr))
cmh_17_1g_8_5_12 <- tribble(
~n, ~rb,
29, 1,
46, 2,
61, 3,
76, 4,
89, 5,
103, 6,
116, 7,
129, 8,
142, 9,
154, 10,
167, 11,
179, 12,
191, 13,
203, 14,
215, 15,
227, 16,
239, 17,
251, 18,
263, 19,
275, 20,
298, 22,
321, 24,
345, 26,
368, 28,
391, 30,
413, 32,
436, 34,
459, 36,
481, 38,
504, 40,
526, 42,
549, 44,
571, 46,
593, 48,
615, 50,
638, 52,
660, 54,
682, 56,
704, 58,
726, 60,
781, 65,
836, 70,
890, 75,
945, 80,
999, 85,
1053, 90,
1107, 95,
1161, 100,
1269, 110,
1376, 120,
1483, 130,
1590, 140,
1696, 150,
1803, 160,
1909, 170,
2015, 180,
2120, 190,
2226, 200,
2331, 210,
2437, 220,
2542, 230,
2647, 240,
2752, 250,
2857, 260,
2962, 270,
3066, 280,
3171, 290,
3276, 300,
3380, 310,
3484, 320,
3589, 330,
3693, 340,
3797, 350,
3901, 360,
4005, 370,
4109, 380,
4213, 390,
4317, 400,
4421, 410,
4525, 420,
4629, 430,
4733, 440,
4836, 450,
4940, 460,
5044, 470,
5147, 480,
5251, 490,
5354, 500,
5613, 525,
5871, 550,
6130, 575,
6388, 600,
6645, 625,
6903, 650,
7161, 675,
7418, 700,
7727, 730,
8036, 760,
8344, 790,
8652, 820,
8960, 850,
9268, 880,
9576, 910,
9884, 940,
10191, 970,
10499, 1000
)
test_that("Non-parametric ranks for B/A-Basis match CMH-17-1G Table 8.5.12", {
skip_on_cran() # this test is a long-running test
cmh_17_1g_8_5_12 %>%
mutate(rb_lag = lag(rb)) %>%
rowwise() %>%
mutate(r_calc = nonpara_binomial_rank(n, 0.9, 0.95)) %>%
mutate(expect_equal(rb, r_calc,
label = paste0(
"Mismatch in r for n=", n,
". rB=", rb,
", r_calc=", r_calc
))) %>%
# the rank for one sample larger should be the same
mutate(r_calc_plus = nonpara_binomial_rank(n + 1, 0.9, 0.95)) %>%
mutate(expect_equal(rb, r_calc_plus,
label = paste0(
"Mismatch in r for n=", n + 1,
". rB=", rb, ", ",
"r_calc=", r_calc_plus
))) %>%
filter(n > 29 & n <= 275) %>%
# the rank for one sample smaller should be the previous one
# above n=275, Table 8.5.12 does not have consecutive ranks, so we can't
# use the lag trick below to check sample sizes of n-1
mutate(r_calc_minus = nonpara_binomial_rank(n - 1, 0.9, 0.95)) %>%
mutate(expect_equal(rb_lag, r_calc_minus,
label = paste0(
"Mismatch in r for n=", n - 1,
". rB=", rb_lag, ", ",
"r_calc=", r_calc_minus
)))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.