mirror of
https://github.com/msberends/AMR.git
synced 2025-12-16 06:30:21 +01:00
97 lines
2.1 KiB
Markdown
97 lines
2.1 KiB
Markdown
# Transform Input to Disk Diffusion Diameters
|
|
|
|
This transforms a vector to a new class `disk`, which is a disk
|
|
diffusion growth zone size (around an antibiotic disk) in millimetres
|
|
between 0 and 50.
|
|
|
|
## Usage
|
|
|
|
``` r
|
|
as.disk(x, na.rm = FALSE)
|
|
|
|
NA_disk_
|
|
|
|
is.disk(x)
|
|
```
|
|
|
|
## Format
|
|
|
|
An object of class `disk` (inherits from `integer`) of length 1.
|
|
|
|
## Arguments
|
|
|
|
- x:
|
|
|
|
Vector.
|
|
|
|
- na.rm:
|
|
|
|
A [logical](https://rdrr.io/r/base/logical.html) indicating whether
|
|
missing values should be removed.
|
|
|
|
## Value
|
|
|
|
An [integer](https://rdrr.io/r/base/integer.html) with additional class
|
|
`disk`
|
|
|
|
## Details
|
|
|
|
Interpret disk values as SIR values with
|
|
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md). It supports
|
|
guidelines from EUCAST and CLSI.
|
|
|
|
Disk diffusion growth zone sizes must be between 0 and 50 millimetres.
|
|
Values higher than 50 but lower than 100 will be maximised to 50. All
|
|
others input values outside the 0-50 range will return `NA`.
|
|
|
|
`NA_disk_` is a missing value of the new `disk` class.
|
|
|
|
## See also
|
|
|
|
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md)
|
|
|
|
## Examples
|
|
|
|
``` r
|
|
# transform existing disk zones to the `disk` class (using base R)
|
|
df <- data.frame(
|
|
microorganism = "Escherichia coli",
|
|
AMP = 20,
|
|
CIP = 14,
|
|
GEN = 18,
|
|
TOB = 16
|
|
)
|
|
df[, 2:5] <- lapply(df[, 2:5], as.disk)
|
|
str(df)
|
|
#> 'data.frame': 1 obs. of 5 variables:
|
|
#> $ microorganism: chr "Escherichia coli"
|
|
#> $ AMP : 'disk' int 20
|
|
#> $ CIP : 'disk' int 14
|
|
#> $ GEN : 'disk' int 18
|
|
#> $ TOB : 'disk' int 16
|
|
|
|
# \donttest{
|
|
# transforming is easier with dplyr:
|
|
if (require("dplyr")) {
|
|
df %>% mutate(across(AMP:TOB, as.disk))
|
|
}
|
|
#> microorganism AMP CIP GEN TOB
|
|
#> 1 Escherichia coli 20 14 18 16
|
|
# }
|
|
|
|
# interpret disk values, see ?as.sir
|
|
as.sir(
|
|
x = as.disk(18),
|
|
mo = "Strep pneu", # `mo` will be coerced with as.mo()
|
|
ab = "ampicillin", # and `ab` with as.ab()
|
|
guideline = "EUCAST"
|
|
)
|
|
#> Class 'sir'
|
|
#> [1] R
|
|
|
|
# interpret whole data set, pretend to be all from urinary tract infections:
|
|
as.sir(df, uti = TRUE)
|
|
#> microorganism AMP CIP GEN TOB
|
|
#> 1 Escherichia coli S <NA> S S
|
|
```
|