From 527245372be8e1331b14f3bceeff1c3a1a117227 Mon Sep 17 00:00:00 2001 From: "Konrad H. Stopsack" <35557324+stopsack@users.noreply.github.com> Date: Wed, 7 Jan 2026 22:34:55 +0100 Subject: [PATCH 1/7] pass on confidence level argument --- R/survdiff_ci.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/survdiff_ci.R b/R/survdiff_ci.R index 1dd7bad..f917296 100644 --- a/R/survdiff_ci.R +++ b/R/survdiff_ci.R @@ -121,7 +121,8 @@ survdiff_ci <- function( formula = formula, data = data, id = .id, - weights = .weights + weights = .weights, + conf.int = conf.level ), time = time, extend = TRUE From 2afefeeb8682ea1e1082f803f7836b33b60d1f13 Mon Sep 17 00:00:00 2001 From: "Konrad H. Stopsack" <35557324+stopsack@users.noreply.github.com> Date: Wed, 7 Jan 2026 22:35:29 +0100 Subject: [PATCH 2/7] add unit test for survdiff_ci confidence level --- tests/testthat/test-time2.R | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/testthat/test-time2.R b/tests/testthat/test-time2.R index a858b6c..1a8acc9 100644 --- a/tests/testthat/test-time2.R +++ b/tests/testthat/test-time2.R @@ -201,6 +201,50 @@ testthat::test_that( ) +testthat::test_that( + desc = "cum inc difference does not ignore confidence level", + code = { + result <- survdiff_ci( + formula = survival::Surv( + time = time, + event = status + ) ~ + sex, + data = cancer, + time = 365.25 + ) + + result09 <- survdiff_ci( + formula = survival::Surv( + time = time, + event = status + ) ~ + sex, + data = cancer, + time = 365.25, + conf.level = 0.9 + ) + + expect_gt( + object = result09$conf.low, + expected = result$conf.low + ) + expect_lt( + object = result09$conf.high, + expected = result$conf.high + ) + expect_equal( + object = result09$estimate, + expected = result$estimate + ) + expect_equal( + object = result09$std.error, + expected = result$std.error, + tolerance = 0.005 + ) + } +) + testthat::test_that( desc = "Invalid ID variable is found", code = { From 5bca534ddd75db3b997efc5b188bf5f55161dbf6 Mon Sep 17 00:00:00 2001 From: "Konrad H. Stopsack" <35557324+stopsack@users.noreply.github.com> Date: Wed, 7 Jan 2026 22:44:03 +0100 Subject: [PATCH 3/7] increase tolerance std.error necessarily differs slightly with MOVER --- tests/testthat/test-time2.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/testthat/test-time2.R b/tests/testthat/test-time2.R index 1a8acc9..304e98a 100644 --- a/tests/testthat/test-time2.R +++ b/tests/testthat/test-time2.R @@ -240,7 +240,7 @@ testthat::test_that( expect_equal( object = result09$std.error, expected = result$std.error, - tolerance = 0.005 + tolerance = 0.01 ) } ) From 5db983e87c71da8e1d1a81c2a5df363b3c290fb3 Mon Sep 17 00:00:00 2001 From: "Konrad H. Stopsack" <35557324+stopsack@users.noreply.github.com> Date: Thu, 8 Jan 2026 12:37:39 +0100 Subject: [PATCH 4/7] bump version no --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index e1cd3dc..a7e2bb8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: rifttable Type: Package Title: Results Tables to Bridge the Rift Between Epidemiologists and Their Data -Version: 0.7.1 +Version: 0.7.1-9000 Authors@R: person(given = "Konrad H.", family = "Stopsack", From 529f615388c18fc8207419b5577b95a97efce0d9 Mon Sep 17 00:00:00 2001 From: Davis Vaughan Date: Wed, 14 Jan 2026 16:13:30 -0500 Subject: [PATCH 5/7] Forcibly retain `label` attribute --- tests/testthat/test-missing_data.R | 14 ++++++++++++-- tests/testthat/test-table1_design.R | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/tests/testthat/test-missing_data.R b/tests/testthat/test-missing_data.R index 066243f..990af15 100644 --- a/tests/testthat/test-missing_data.R +++ b/tests/testthat/test-missing_data.R @@ -2,9 +2,19 @@ data("breastcancer", package = "risks") df <- breastcancer |> dplyr::mutate( continuous = 1:dplyr::n(), - receptor = dplyr::if_else(dplyr::row_number() %in% 9:11, NA, receptor), + receptor = { + label <- attr(receptor, "label") + receptor <- dplyr::if_else(dplyr::row_number() %in% 9:11, NA, receptor) + attr(receptor, "label") <- label + receptor + }, stage = dplyr::if_else(dplyr::row_number() %in% 29:31, NA, stage), - death = dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death), + death = { + label <- attr(death, "label") + dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death) + attr(death, "label") <- label + death + }, allempty = NA_real_, allempty_lgl = allempty == 1 ) diff --git a/tests/testthat/test-table1_design.R b/tests/testthat/test-table1_design.R index c3308cc..186513b 100644 --- a/tests/testthat/test-table1_design.R +++ b/tests/testthat/test-table1_design.R @@ -2,8 +2,18 @@ data("breastcancer", package = "risks") df <- breastcancer |> dplyr::mutate( continuous = 1:dplyr::n(), - receptor = dplyr::if_else(dplyr::row_number() %in% 9:11, NA, receptor), - death = dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death), + receptor = { + label <- attr(receptor, "label") + receptor <- dplyr::if_else(dplyr::row_number() %in% 9:11, NA, receptor) + attr(receptor, "label") <- label + receptor + }, + death = { + label <- attr(death, "label") + dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death) + attr(death, "label") <- label + death + }, allempty = NA_integer_, allempty_lgl = allempty == 1 ) From 166e38c94e68c133ecefc7863c2895b07bd76c56 Mon Sep 17 00:00:00 2001 From: Davis Vaughan Date: Wed, 14 Jan 2026 16:37:09 -0500 Subject: [PATCH 6/7] Actually assign back to `death` --- tests/testthat/test-missing_data.R | 2 +- tests/testthat/test-table1_design.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test-missing_data.R b/tests/testthat/test-missing_data.R index 990af15..9e34190 100644 --- a/tests/testthat/test-missing_data.R +++ b/tests/testthat/test-missing_data.R @@ -11,7 +11,7 @@ df <- breastcancer |> stage = dplyr::if_else(dplyr::row_number() %in% 29:31, NA, stage), death = { label <- attr(death, "label") - dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death) + death <- dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death) attr(death, "label") <- label death }, diff --git a/tests/testthat/test-table1_design.R b/tests/testthat/test-table1_design.R index 186513b..68f6ff1 100644 --- a/tests/testthat/test-table1_design.R +++ b/tests/testthat/test-table1_design.R @@ -10,7 +10,7 @@ df <- breastcancer |> }, death = { label <- attr(death, "label") - dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death) + death <- dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death) attr(death, "label") <- label death }, From 87cf77a6ab8263d6dcd1b659424f5779938b4a06 Mon Sep 17 00:00:00 2001 From: "Konrad H. Stopsack" <35557324+stopsack@users.noreply.github.com> Date: Sun, 18 Jan 2026 20:27:53 +0100 Subject: [PATCH 7/7] release 0.7.2 --- DESCRIPTION | 4 ++-- NEWS.md | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index a7e2bb8..5fd63bb 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: rifttable Type: Package Title: Results Tables to Bridge the Rift Between Epidemiologists and Their Data -Version: 0.7.1-9000 +Version: 0.7.2 Authors@R: person(given = "Konrad H.", family = "Stopsack", @@ -19,7 +19,7 @@ License: GPL (>= 3) Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) -RoxygenNote: 7.3.2 +RoxygenNote: 7.3.3 Depends: R (>= 4.1.0) Imports: diff --git a/NEWS.md b/NEWS.md index 24f12dd..8de018f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,13 @@ +# rifttable 0.7.2 + +* Bug fixes: + + `survdiff_ci()` now uses the `conf.level` argument correctly in confidence + interval estimation using the MOVER approach (#8). +* Internal: + + Anticipate changes in {dplyr} 1.2.0 in label handling in unit tests (thanks + to @DavisVaughan, #10). + + # rifttable 0.7.1 * Housekeeping for CRAN release