Scoring functions for questionnaires used in urology and pelvic health research: the IPSS, OABSS, the O’Leary-Sant indices (ICSI/ICPI), UDI-6, IIQ-7, the Sandvik incontinence severity index (1993 and 2000 versions), and the BPH Impact Index. Published minimal important difference data for responder analyses are included.
Most research groups score these by hand in a spreadsheet. Two things go wrong there: out-of-range values slip through silently, and missing items get handled ad hoc. This package was built around preventing both.
How it works:
score_instrument(), reads it; score_ipss() is
a thin wrapper. Adding an instrument means writing a definition, not
another scoring function.mid_estimates() lists
the published anchor-based statistics with the anchor, subgroup, and
citation on every row, and responder() requires you to pick
a threshold yourself.# install.packages("pak")
pak::pak("faizamirullah/uroscores")library(uroscores)
list_instruments()
d <- data.frame(
ipss_q1 = c(1, 3), ipss_q2 = c(2, 4), ipss_q3 = c(3, 5),
ipss_q4 = c(0, 2), ipss_q5 = c(4, 5), ipss_q6 = c(5, 3),
ipss_q7 = c(2, 4), qol = c(3, 5)
)
score_ipss(d, qol = "qol", classify = TRUE)
# Responder analysis with a threshold you choose:
mid_estimates("ipss")
responder(baseline = c(20, 12), followup = c(14, 11), "ipss", threshold = 3)First release. The nine built-in definitions (ipss, oabss, icsi, icpi, udi6, iiq7, isi, isi3, bii) have been checked against their primary source publications. This package computes research scores; it is not a clinical decision tool.
Clinical scoring packages exist for other domains (PROscorer, RiskScorescvd, HealthMarkers, amscorer); none covers urology or pelvic health instruments.