Charlson score is calculated in the basis of the Quan revision of Deyo's ICD-9 mapping. (peptic ulcer disease no longer warrants a point.) Quan published an updated set of scores, but it seems most people use the original scores for easier comparison between studies, even though Quan's were more predictive.
charlson(x, visit_name = NULL, scoring_system = c("original",
"charlson", "quan"), return_df = FALSE,
stringsAsFactors = getOption("stringsAsFactors"), ...)# S3 method for data.frame
charlson(x, visit_name = NULL,
scoring_system = c("original", "charlson", "quan"),
return_df = FALSE, stringsAsFactors = getOption("stringsAsFactors"),
...)
icd_charlson(...)
icd_charlson.data.frame(...)
data frame containing a column of visit or patient identifiers, and
a column of ICD-9 codes. It may have other columns which will be ignored.
By default, the first column is the patient identifier and is not counted.
If visit_name
is not specified, the first column is used.
The name of the column in the data frame which contains the
patient or visit identifier. Typically this is the visit identifier, since
patients come leave and enter hospital with different ICD-9 codes. It is a
character vector of length one. If left empty, or NULL
, then an
attempt is made to guess which field has the ID for the patient encounter
(not a patient ID, although this can of course be specified directly). The
guesses proceed until a single match is made. Data frames may be wide with
many matching fields, so to avoid false positives, anything but a single
match is rejected. If there are no successful guesses, and visit_id
was not specified, then the first column of the data frame is used.
One of original
, charlson
, or
quan
. The first two will give the original Charlson weights for each
comorbidity, whereas quan
uses the updated weights from Quan 2011.
single logical value, if true, a two column data frame will
be returned, with the first column named as in input data frame (i.e.
visit_name
), containing all the visits, and the second column
containing the Charlson Comorbidity Index.
single logical, passed on when constructing
data.frame if return_df
is TRUE
. If the input data frame
x
has a factor for the visit_name
, this is not changed, but a
non-factor visit_name
may be converted or not converted according to
your system default or this setting.
further arguments to pass on to icd9_comorbid_quan_deyo
,
e.g. name
data.frame
: Charlson scores from data frame of visits and ICD-9
codes. ICD-10 Charlson can be calculated simply by getting the Charlson
(e.g. Quan Deyo) comorbidities, then calling
charlson_from_comorbid
.
Future versions of icd will drop
the icd_
prefix. For example, charlson
should be used in
favor of icd_charlson
. To distinguish icd function calls,
consider using the prefix icd::
instead, e.g., icd::charlson
.
Functions which specifically operate on either ICD-9 or ICD-10 codes or
their sub-types will retain the prefix. E.g.
icd9_comorbid_ahrq
. icd specific classes also retain
the prefix, e.g., icd_wide_data
.
When used, hierarchy is applied per Quan, "The following comorbid conditions were mutually exclusive: diabetes with chronic complications and diabetes without chronic complications; mild liver disease and moderate or severe liver disease; and any malignancy and metastatic solid tumor." The Quan scoring weights come from the 2011 paper (dx.doi.org/10.1093/aje/kwq433). The comorbidity weights were recalculated using updated discharge data, and some changes, such as Myocardial Infarction decreasing from 1 to 0, may reflect improved outcomes due to advances in treatment since the original weights were determined in 1984.
# NOT RUN {
mydf <- data.frame(visit_name = c("a", "b", "c"),
icd9 = c("441", "412.93", "042"))
charlson(mydf)
cmb <- icd9_comorbid_quan_deyo(mydf)
cmb
# can specify short_code directly instead of guessing
charlson(mydf, short_code = FALSE, return_df = TRUE)
charlson_from_comorbid(cmb)
# }
Run the code above in your browser using DataLab