Skip to content

Instantly share code, notes, and snippets.

@njtierney
Created May 4, 2026 01:34
Show Gist options
  • Select an option

  • Save njtierney/3ed9eed4d3e0d221f6300cfc2726db85 to your computer and use it in GitHub Desktop.

Select an option

Save njtierney/3ed9eed4d3e0d221f6300cfc2726db85 to your computer and use it in GitHub Desktop.
# try and match results on page 138

library(season)
library(testthat)
model_matchconf <- casecross(
  cvd ~ o3mean + Mon + Tue + Wed + Thu + Fri + Sat,
  data = CVDdaily,
  stratalength = 28,
  exclusion = 4,
  matchconf = "tmpd",
  confrange = 1
)
expect_s3_class(model_matchconf, "casecross")
# Tight match on temp reduces controls per case vs
# unmatched 28-day default (19.7).
# On textbook it is 5.1, but here we get 4.8?
expect_equal(model_matchconf$ncontroldays, 5.1)
#> Error:
#> ! Expected `model_matchconf$ncontroldays` to equal 5.1.
#> Differences:
#> 1/1 mismatches
#> [1] 4.8 - 5.1 == -0.3

coef_match <- coef(model_matchconf$c.model)


coef_match_o3 <- coef_match[["o3mean"]] |> round(9)
coef_match_o3_exp <- coef_match[["o3mean"]] |> exp() |> round(4)

# fails
expect_equal(coef_match_o3, 0.0035045071)
#> Error:
#> ! Expected `coef_match_o3` to equal 0.0035045071.
#> Differences:
#> 1/1 mismatches
#> [1] 0.00277 - 0.0035 == -0.000735
expect_equal(coef_match_o3_exp, 1.003511)
#> Error:
#> ! Expected `coef_match_o3_exp` to equal 1.003511.
#> Differences:
#> 1/1 mismatches
#> [1] 1 - 1 == -0.000711
expect_gt(coef_match_o3_exp, 1)

# expect non significant - not true here.
library(broom)
model_tidy <- tidy(model_matchconf$c.model)
model_tidy
#> # A tibble: 7 × 5
#>   term   estimate std.error statistic  p.value
#>   <chr>     <dbl>     <dbl>     <dbl>    <dbl>
#> 1 o3mean  0.00277  0.000450      6.15 7.71e-10
#> 2 Mon     0.0675   0.00978       6.90 5.17e-12
#> 3 Tue     0.0443   0.00998       4.44 9.14e- 6
#> 4 Wed     0.0234   0.0100        2.33 2.01e- 2
#> 5 Thu     0.0310   0.0100        3.10 1.94e- 3
#> 6 Fri     0.0435   0.00973       4.47 7.89e- 6
#> 7 Sat     0.0363   0.00954       3.80 1.43e- 4
o3_pvalue <- subset(model_tidy, term == "o3mean")$p.value
expect_gt(o3_pvalue, 0.05)
#> Error:
#> ! Expected `o3_pvalue` > 0.05.
#> Actual comparison: 0.0000000008 <= 0.0500000000
#> Difference: -0.0499999992 <= 0

Created on 2026-05-04 with reprex v2.1.1

Session info

sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.5.3 (2026-03-11)
#>  os       macOS Tahoe 26.3.1
#>  system   aarch64, darwin20
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       Australia/Hobart
#>  date     2026-05-04
#>  pandoc   3.8.3 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)
#>  quarto   1.9.36 @ /usr/local/bin/quarto
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version     date (UTC) lib source
#>  backports     1.5.1       2026-04-03 [1] CRAN (R 4.5.2)
#>  brio          1.1.5       2024-04-24 [1] CRAN (R 4.5.0)
#>  broom       * 1.0.12      2026-01-27 [1] CRAN (R 4.5.2)
#>  cli           3.6.6       2026-04-09 [1] CRAN (R 4.5.3)
#>  desc          1.4.3       2023-12-10 [1] CRAN (R 4.5.0)
#>  digest        0.6.39      2025-11-19 [1] CRAN (R 4.5.2)
#>  dplyr         1.2.1       2026-04-03 [1] CRAN (R 4.5.2)
#>  evaluate      1.0.5       2025-08-27 [1] CRAN (R 4.5.0)
#>  fastmap       1.2.0       2024-05-15 [1] CRAN (R 4.5.0)
#>  fs            2.0.1       2026-03-24 [1] CRAN (R 4.5.2)
#>  generics      0.1.4       2025-05-09 [1] CRAN (R 4.5.0)
#>  glue          1.8.0       2024-09-30 [1] CRAN (R 4.5.0)
#>  htmltools     0.5.9       2025-12-04 [1] CRAN (R 4.5.2)
#>  knitr         1.51        2025-12-20 [1] CRAN (R 4.5.2)
#>  lattice       0.22-9      2026-02-09 [2] CRAN (R 4.5.3)
#>  lifecycle     1.0.5       2026-01-08 [1] CRAN (R 4.5.2)
#>  magrittr      2.0.5       2026-04-04 [1] CRAN (R 4.5.2)
#>  Matrix        1.7-5       2026-03-21 [2] CRAN (R 4.5.2)
#>  otel          0.2.0       2025-08-29 [1] CRAN (R 4.5.0)
#>  pillar        1.11.1      2025-09-17 [1] CRAN (R 4.5.0)
#>  pkgconfig     2.0.3       2019-09-22 [1] CRAN (R 4.5.0)
#>  pkgload       1.5.1       2026-04-01 [1] CRAN (R 4.5.2)
#>  purrr         1.2.2       2026-04-10 [1] CRAN (R 4.5.3)
#>  R6            2.6.1       2025-02-15 [1] CRAN (R 4.5.0)
#>  reprex        2.1.1       2024-07-06 [1] CRAN (R 4.5.0)
#>  rlang         1.2.0       2026-04-06 [1] CRAN (R 4.5.2)
#>  rmarkdown     2.31        2026-03-26 [1] CRAN (R 4.5.2)
#>  rprojroot     2.1.1       2025-08-26 [1] CRAN (R 4.5.0)
#>  rstudioapi    0.18.0      2026-01-16 [1] CRAN (R 4.5.2)
#>  season      * 0.3.16.9000 2026-04-28 [1] local
#>  sessioninfo   1.2.3       2025-02-05 [1] CRAN (R 4.5.0)
#>  survival      3.8-6       2026-01-16 [2] CRAN (R 4.5.3)
#>  testthat    * 3.3.2       2026-01-11 [1] CRAN (R 4.5.2)
#>  tibble        3.3.1       2026-01-11 [1] CRAN (R 4.5.2)
#>  tidyr         1.3.2       2025-12-19 [1] CRAN (R 4.5.2)
#>  tidyselect    1.2.1       2024-03-11 [1] CRAN (R 4.5.0)
#>  utf8          1.2.6       2025-06-08 [1] CRAN (R 4.5.0)
#>  vctrs         0.7.3       2026-04-11 [1] CRAN (R 4.5.3)
#>  withr         3.0.2       2024-10-28 [1] CRAN (R 4.5.0)
#>  xfun          0.57        2026-03-20 [1] CRAN (R 4.5.2)
#>  yaml          2.3.12      2025-12-10 [1] CRAN (R 4.5.2)
#> 
#>  [1] /Users/nick_1/Library/R/arm64/4.5/library
#>  [2] /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/library
#>  * ── Packages attached to the search path.
#> 
#> ──────────────────────────────────────────────────────────────────────────────
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment