This function computes the UPSIT (University of Pennsylvania Smell Identification Test) percentile for a given subject based on their age, sex, and UPSIT raw score. The percentile is determined by looking up the corresponding value in a normative reference table.
compute_upsit_percentile(sex, age, upsit_score)A numeric percentile value.
The UPSIT percentile value corresponding to the input
parameters. Returns NA_real_ if no matching entry is found in the
lookup table.
Sex of the subject. Must be either "M" or "F" A character string of either "M" or "F" is expected
a character scalar, i.e., a character vector of length one
none
Age of the subject in years.
a numeric scalar, i.e., a numeric vector of length one
none
The UPSIT ranging from 0 to 40. Higher scores indicate better olfactory function.
a numeric scalar, i.e., a numeric vector of length one
none
A 52 years old male with upsit raw score of 25
compute_upsit_percentile(sex = "M", age = 52, upsit_score = 25)
#> [1] 5
A 81 years old female with upsit raw score of 30
compute_upsit_percentile(sex = "F", age = 81, upsit_score = 30)
#> [1] 39
Minimal age is 50 and score of 0 and 40, return NA if no match found
compute_upsit_percentile(sex = "M", age = 45, upsit_score = 25)
#> [1] NAThe function uses an internal lookup table (upsit_lookup) that contains
normative percentile data stratified by sex, age range, and UPSIT score.
The lookup table is based on published normative data.
Age ranges in the lookup table include:
50-54 years
55-59 years
60-64 years
65-69 years
70-74 years
75-79 years
80+ years (no upper limit)
The function is designed to work efficiently in vectorized operations
within data processing pipelines (e.g., with dplyr::mutate())
Brumm MC, et. al., Updated Percentiles for the University of Pennsylvania Smell Identification Test in Adults 50 Years of Age and Older. tools:::Rd_expr_doi("10.1212/WNL.0000000000201463")
Other com_bds_findings:
compute_centiloid()