## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = TRUE ) library(reproducr) ## ----audit-------------------------------------------------------------------- # Create a small example script script <- tempfile(fileext = ".R") writeLines(c( "# Example analysis", "set.seed(237)", "x <- dplyr::filter(mtcars, cyl == 4)", "y <- dplyr::summarise(x, mean_mpg = mean(mpg), n = dplyr::n())", "fit <- lm(mpg ~ wt, data = x)", "z <- stats::rnorm(nrow(y))", "out <- base::sort(unique(x$gear))" ), script) report <- audit_script(script, renv = FALSE, verbose = FALSE) print(report) ## ----calls-------------------------------------------------------------------- report$calls ## ----risk--------------------------------------------------------------------- risks <- risk_score(report) print(risks) ## ----risk-filtered------------------------------------------------------------ # High-severity only high_risks <- risk_score(report, min_risk = "high") # Just the seed check seed_issues <- risk_score(report, methods = "seed_check") ## ----risk-df------------------------------------------------------------------ # As a plain data frame for downstream use as.data.frame(risks) ## ----certify------------------------------------------------------------------ cert_file <- tempfile() model <- lm(mpg ~ wt, data = mtcars) certify( outputs = list( coefs = coef(model), r_squared = summary(model)$r.squared, n_obs = nrow(mtcars) ), tag = "baseline-v1", script = script, file = cert_file ) ## ----list-certs--------------------------------------------------------------- list_certs(file = cert_file) ## ----drift-ok----------------------------------------------------------------- result <- check_drift( outputs = list( coefs = coef(model), r_squared = summary(model)$r.squared, n_obs = nrow(mtcars) ), against = "baseline-v1", file = cert_file ) ## ----drift-detect------------------------------------------------------------- # Different model — shows drift model2 <- lm(mpg ~ hp, data = mtcars) check_drift( outputs = list(coefs = coef(model2)), against = "baseline-v1", file = cert_file ) ## ----report-minimal, results='hide'------------------------------------------- repro_report(report, risks, format = "text", style = "minimal") ## ----report-academic---------------------------------------------------------- cat(repro_report(report, risks, format = "text", style = "academic")) ## ----badge-------------------------------------------------------------------- badge <- repro_badge(report, risks, output = "markdown") cat(badge) ## ----cleanup, include = FALSE------------------------------------------------- unlink(script) unlink(paste0(cert_file, ".rds"))