These functions take your patient data, and allow you to describe whether it
is wide or long. icd
never requires you do this, but it may help avoid
errors, especially if you have atypical data that might confuse icd
's
heuristics.
as.icd_long_data(x, warn = TRUE) as.icd_wide_data(x, warn = TRUE) icd_long_data(..., warn = TRUE) icd_wide_data(x, ..., warn = TRUE)
x | Input data is a |
---|---|
warn | Single logical, if |
... | Data used to construct data frame before setting the appropriate class. |
as.icd_long_data
: Set class on a matrix or data.frame to
icd_long_data
. To convert wide to long data, use
wide_to_long
.
as.icd_wide_data
: Construct a data.frame
, adding the
icd_long_data
class.
icd_long_data
: Construct a data.frame
, adding the
icd_long_data
class.
icd_wide_data
: Construct a data.frame
, adding the
icd_wide_data
class.
As is common with many data sets, key variables can be concentrated in one column or spread over several. Tools format of clinical and administrative hospital data, we can perform the conversion efficiently and accurately, while keeping some metadata about the codes intact, e.g. whether they are ICD-9 or ICD-10.
Long or wide format ICD data are all expected to be
in a data frame. The data.frame
itself does not carry any ICD
classes at the top level, even if it only contains one type of code;
whereas its constituent columns may have a class specified, e.g.
icd9
or icd10who
.
To convert between long and wide data, use
long_to_wide
or wide_to_long
. Conversion
functions in other packages, such as ddplyr
will work, too, but will
need some work to account for the typical structure of patient data and
diagnostic codes. This is not done with ddplyr
, data.table
etc because it would add a big dependency burden. This package aims to be
agnostic and use base R as much as possible.
Other ICD data types:
as.comorbidity_map()
,
set_icd_class
Other ICD data types:
as.comorbidity_map()
,
set_icd_class
Other ICD data types:
as.comorbidity_map()
,
set_icd_class
(w <- icd_wide_data( id = c(1, 2, 3), dx01 = c("100", "441", "V20"), dx02 = c("E9981", "V10", "44004") ))#> id dx01 dx02 #> 1 1 100 E9981 #> 2 2 441 V10 #> 3 3 V20 44004wide_to_long(w)#> id icd_code #> 1 1 100 #> 2 1 E9981 #> 3 2 441 #> 4 2 V10 #> 5 3 V20 #> 6 3 44004class(uranium_pathology)#> [1] "icd_long_data" "data.frame"class(vermont_dx)#> [1] "icd_wide_data" "data.frame"