These functions check whether the given ICD codes look correct, but do not
check whether they have actual definitions in any particular ICD scheme. For
that, see is_defined.
is_valid(x, ...)# S3 method for icd10
is_valid(x, short_code = guess_short(x),
whitespace_ok = TRUE, ...)
# S3 method for icd9
is_valid(x, short_code = guess_short(x),
whitespace_ok = TRUE, ...)
# S3 method for comorbidity_map
is_valid(x, short_code, ...)
icd_is_valid.default(...)
icd_is_valid.icd10(...)
icd_is_valid.icd9(...)
icd_is_valid.icd_comorbidity_map(...)
icd_is_valid_major(...)
icd_is_valid_major.default(...)
icd_is_valid_major.icd10(...)
icd_is_valid_major.icd9(...)
icd_is_valid(...)
An ICD-9 or 10 code. If the class is set to 'icd9',
'icd10', 'icd10cm' etc then perform appropriate validation.
arguments passed on to other functions
Single logical, if TRUE, the default, matches for
ICD codes will accept leading and trailing white space.
character vector of 'major' part of ICD-9 codes, i.e. that part which falls before the decimal point, in decimal notation. (In five digit notation, the 'major' part is be the first three characters (with leading zeroes), and includes V or E prefix.
arguments passed on to other functions
logical vector with TRUE or FALSE for each ICD code
provided according to its validity
icd10: Test whether generic ICD-10 code is valid
icd9: Test whether generic ICD-10 code is valid
comorbidity_map: Validate a mapping of ICD codes to comorbidities.
icd9_is_valid_major validates just
the 'major' three-digit part of an ICD-9 code. This can in fact be provided
as a numeric, since there is no ambiguity. Numeric-only codes should be one
to three digits, V codes are followed by one or two digits, and E codes
always by three digits between 800 and 999.
Currently, there is a limitation on NA values.
Calling with NA (which is a logical vector of length one by default)
fails, because it is not a string. This is rarely of significance in real
life, since the NA will be part of a character vector of codes, and will
therefore be cast already to NA_character
S3 class of on object in R is just a vector. Attributes are
lost with manipulation, with the exception of class: therefore, elements of
the class vector are used to describe features of the data. If these are
not present, the user may specify (e.g. decimal vs short_code type, ICD-9
vs ICD-10 WHO), but if they are, the correct functions are called without
any guess work. There is overlap between sets with combinations of
short_code or decimal_code, and ICD-9 or ICD-10 codes, so
guessing is never going to be perfect.
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.
Leading zeroes in the decimal form are not ambiguous. Although integer ICD-9 codes could be intended by the user, there is a difference between 100, 100.0, 100.00. Therefore a warning is given if a numeric value is provided.
http://www.stata.com/users/wgould/icd9/icd9.hlp http://www.sascommunity.org/wiki/Validate_the_format_of_ICD-9_codes
# NOT RUN {
is_valid(as.icd9(c("", "1", "22", "333", "4444", "123.45", "V",
"V2", "V34", "V567", "E", "E1", "E70", "E")))
# internal function:
icd:::is_valid_major(c("", "1", "22", "333", "4444", "123.45", "V",
"V2", "V34", "V567", "E", "E1", "E70", "E"))
# }
Run the code above in your browser using DataLab