## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set(collapse = TRUE, comment = "#>") library(pft) ## ----------------------------------------------------------------------------- data.frame( band = c("normal", "mild", "moderate", "severe"), z_lower = c(-1.645, -2.5, -4, -Inf), z_upper = c( Inf, -1.645, -2.5, -4) ) ## ----------------------------------------------------------------------------- pft_severity(c(0.2, -1.7, -3.0, -5.0)) ## ----------------------------------------------------------------------------- pft_severity_2005(c(85, 65, 55, 40, 30)) ## ----------------------------------------------------------------------------- case <- data.frame( fev1 = c(2.5, 2.5, 1.5, 1.5, 3.5), fev1_lln_2022= c(3.0, 3.0, 2.5, 2.5, 3.0), fvc = c(3.8, 3.8, 2.2, 2.2, 4.5), fvc_lln_2022 = c(3.5, 3.5, 2.5, 2.5, 4.0), fev1fvc = c(0.66, 0.66, 0.68, 0.80, 0.78), fev1fvc_lln_2022 = 0.70, tlc = c(6.0, 5.0, 4.0, 4.0, 6.5), tlc_lln = c(5.5, 5.5, 5.5, 5.5, 5.5) ) pft_classify(case)[, c("ats_classification")] ## ----------------------------------------------------------------------------- copd <- data.frame( sex = "M", age = 68, height = 175, race = "Caucasian", fev1_measured = 1.6, fvc_measured = 3.0, fev1fvc_measured = 1.6 / 3.0, tlc_measured = 6.8 ) r <- pft_interpret(copd) r[, c("ats_classification", "fev1_severity_2022", "fev1_zscore_2022", "fev1_pctpred_2022")] ## ----------------------------------------------------------------------------- pft_gold(r$fev1_pctpred_2022, fev1fvc = r$fev1fvc_measured) ## ----------------------------------------------------------------------------- preserved_kco <- data.frame( sex = "F", age = 55, height = 160, race = "Caucasian", fev1_measured = 1.2, fvc_measured = 1.5, fev1fvc_measured = 0.80, tlc_measured = 3.8, rv_tlc_measured = 0.30, dlco_measured = 22.0, va_measured = 4.6, kco_tr_measured = 4.5 ) r <- pft_interpret(preserved_kco) r[, c("ats_classification", "diffusion_category", "volume_subpattern")] ## ----------------------------------------------------------------------------- no_tlc <- data.frame( sex = "M", age = 50, height = 175, race = "Caucasian", fev1_measured = 2.2, fvc_measured = 2.8, fev1fvc_measured = 0.79 ) r <- pft_interpret(no_tlc) r[, c("ats_classification", "prism")] ## ----eval = FALSE------------------------------------------------------------- # library(dplyr) # # out <- pft_spirometry(cohort) |> # mutate( # fev1_severity_2022 = pft_severity(fev1_zscore_2022), # fvc_severity_2022 = pft_severity(fvc_zscore_2022), # gold = pft_gold(fev1_pctpred_2022, fev1fvc = fev1fvc_measured), # bdr_sig = pft_bdr(fev1_pre, fev1_post, fev1_pred_2022)$is_significant # ) ## ----eval = FALSE------------------------------------------------------------- # out |> # mutate(across(matches("_zscore"), pft_severity, .names = "{.col}_severity"))