tests/testthat/test-missing_trend.R

data("breastcancer", package = "risks")
df <- breastcancer |>
  dplyr::mutate(
    continuous = 1:dplyr::n(),
    receptor = dplyr::if_else(dplyr::row_number() %in% 9:11, NA, receptor),
    stage_num_orig = as.numeric(stage),
    stage = dplyr::if_else(dplyr::row_number() %in% 29:31, NA, stage),
    death = dplyr::if_else(dplyr::row_number() %in% 99:101, NA, death),
    stage_num = as.numeric(stage)
  )


test_that("Trend works anywhere", {
  result <- tibble::tribble(
    ~label,   ~exposure, ~trend,      ~outcome,     ~type,
    "N",      "stage",   "stage_num", NA,           "total",
    "deaths", "stage",   "stage_num", "death",      "outcomes",
    "RD",     "stage",   "stage_num", "death",      "rd",
    "diff",   "stage",   "stage_num", "continuous", "diff"
  ) |>
    rifttable(data = df)
  expect_equal(nrow(result), expected = 4)
  expect_equal(ncol(result), expected = 6)
  expect_equal(
    names(result),
    c("Stage", "Stage I", "Stage II", "Stage III", "NA", "Trend")
  )

  result <- tibble::tribble(
    ~label,   ~exposure, ~trend,      ~outcome,     ~type,
    "N",      NA,        NA,          NA,           "total",
    "deaths", "stage",   "stage_num", "death",      "outcomes",
    "RD",     "stage",   "stage_num", "death",      "rd",
    "diff",   "stage",   "stage_num", "continuous", "diff"
  ) |>
    rifttable(data = df)
  expect_equal(nrow(result), expected = 4)
  expect_equal(ncol(result), expected = 7)
  expect_equal(
    names(result),
    c("Stage", "Overall", "Stage I", "Stage II", "Stage III", "NA", "Trend")
  )

  result <- tibble::tribble(
    ~label,   ~exposure, ~trend,      ~outcome,     ~type,
    "N",      NA,        NA,          NA,           "total",
    "deaths", "stage",   "stage_num", "death",      "outcomes",
    "RD",     "stage",   "stage_num", "death",      "rd",
    "diff",   "stage",   "stage_num", "continuous", "diff"
  ) |>
    rifttable(
      data = df,
      exposure_levels = "nona"
    )
  expect_equal(nrow(result), expected = 4)
  expect_equal(ncol(result), expected = 6)
  expect_equal(
    names(result),
    c("Stage", "Overall", "Stage I", "Stage II", "Stage III", "Trend")
  )

  result <- tibble::tribble(
    ~label,   ~exposure, ~trend,      ~outcome,     ~type,
    "deaths", "",        "stage_num", "death",      "outcomes",
    "RD",     "stage",   "stage_num", "death",      "rd",
    "OR",     "",        "stage_num", "death",      "or"
  ) |>
    rifttable(data = df)
  expect_equal(nrow(result), expected = 3)
  expect_equal(ncol(result), expected = 6)
  expect_equal(
    names(result),
    c("Stage", "Overall", "Stage I", "Stage II", "Stage III", "Trend")
  )

  result <- tibble::tribble(
    ~label,   ~exposure, ~trend,      ~outcome,     ~type,
    "OR",     "",        "stage_num", "death",      "or",
    "deaths", "stage",   "stage_num", "death",      "outcomes",
    "RD",     "stage",   "stage_num", "death",      "rd"
  ) |>
    rifttable(data = df)
  expect_equal(nrow(result), expected = 3)
  expect_equal(ncol(result), expected = 6)
  expect_equal(
    names(result),
    c("Stage", "Stage I", "Stage II", "Stage III", "NA", "Trend")
  )

  result <- tibble::tribble(
    ~label,   ~exposure, ~trend,      ~outcome,     ~type,
    "OR",     "",        "stage_num", "death",      "or",
    "deaths", "stage",   "stage_num", "death",      "outcomes",
    "RD",     "stage",   "stage_num", "death",      "rd"
  ) |>
    rifttable(
      data = df,
      overall = TRUE,
      exposure_levels = "nona"
    )
  expect_equal(nrow(result), expected = 3)
  expect_equal(ncol(result), expected = 6)
  expect_equal(
    names(result),
    c("Summary", "Overall", "Stage I", "Stage II", "Stage III", "Trend")
  )
})

Try the rifttable package in your browser

Any scripts or data that you put into this service are public.

rifttable documentation built on June 8, 2025, 1:52 p.m.