diff --git a/404.html b/404.html
index d93a397a..8a8fc8cd 100644
--- a/404.html
+++ b/404.html
@@ -36,7 +36,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/LICENSE-text.html b/LICENSE-text.html
index 3b94a8fc..9efa168f 100644
--- a/LICENSE-text.html
+++ b/LICENSE-text.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/articles/AMR.html b/articles/AMR.html
index 9788c8e7..495c0bf8 100644
--- a/articles/AMR.html
+++ b/articles/AMR.html
@@ -38,7 +38,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -187,7 +187,7 @@
website update since they are based on randomly created values and the
page was written in R
Markdown . However, the methodology remains unchanged. This page was
-generated on 11 March 2023.
+generated on 12 March 2023.
We can now add the interpretation of MDR-TB to our data set. You can
use:
@@ -438,40 +438,40 @@ Unique: 5
1
Mono-resistant
-3262
-65.24%
-3262
-65.24%
+3216
+64.32%
+3216
+64.32%
2
Negative
-950
-19.00%
-4212
-84.24%
+959
+19.18%
+4175
+83.50%
3
Multi-drug-resistant
-459
-9.18%
-4671
-93.42%
+462
+9.24%
+4637
+92.74%
4
Poly-resistant
-222
-4.44%
-4893
-97.86%
+247
+4.94%
+4884
+97.68%
5
Extensively drug-resistant
-107
-2.14%
+116
+2.32%
5000
100.00%
diff --git a/articles/PCA.html b/articles/PCA.html
index ed5d21e8..54ae466e 100644
--- a/articles/PCA.html
+++ b/articles/PCA.html
@@ -38,7 +38,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/articles/SPSS.html b/articles/SPSS.html
index db87ab14..d1490d1e 100644
--- a/articles/SPSS.html
+++ b/articles/SPSS.html
@@ -38,7 +38,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -178,7 +178,7 @@
Dr. Matthijs
Berends
- 11 March 2023
+ 12 March 2023
Source: vignettes/SPSS.Rmd
SPSS.Rmd
@@ -257,7 +257,7 @@ data using a custom made website. The webdesign knowledge needed
R has a huge community.
Many R users just ask questions on websites like StackOverflow.com , the largest
-online community for programmers. At the time of writing, 483 254
+online community for programmers. At the time of writing, 484 006
R-related questions have already been asked on this platform (that
covers questions and answers for any programming language). In my own
experience, most questions are answered within a couple of
diff --git a/articles/WHONET.html b/articles/WHONET.html
index fabfcc07..1f54e2ad 100644
--- a/articles/WHONET.html
+++ b/articles/WHONET.html
@@ -38,7 +38,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/articles/datasets.html b/articles/datasets.html
index 2d812544..6c901b9d 100644
--- a/articles/datasets.html
+++ b/articles/datasets.html
@@ -38,7 +38,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -176,7 +176,7 @@
-
AMR 1.8.2.9151
-
(this beta version will eventually become v2.0! We’re happy to reach a new major milestone soon!)
+
AMR 1.8.2.9152
This is a new major release of the AMR package, with great new additions but also some breaking changes for current users. These are all listed below.
TL;DR
All functions and arguments with ‘rsi’ were replaced with ‘sir’, such as the interpretation of MIC values (now as.sir()
instead of as.rsi()
) - all old functions still work for now
@@ -156,37 +155,37 @@
Now available in 20 languages
Many small bug fixes
-
New
+
New
-
SIR vs. RSI
+
SIR vs. RSI
For this milestone version, we replaced all mentions of RSI with SIR, to comply with what is actually being commonly used in the field of clinical microbiology when it comes to this tri-form regarding AMR.
While existing functions such as as.rsi()
, rsi_df()
and ggplot_rsi()
still work, their replacements as.sir()
, sir_df()
, ggplot_sir()
are now the current functions for AMR data analysis. A warning will be thrown once a session to remind users about this. The data set rsi_translation
is now called clinical_breakpoints
to better reflect its content.
The ‘RSI functions’ will be removed in a future version, but not before late 2023 / early 2024.
-
New antibiogram function
+
New antibiogram function
With the new antibiogram()
function, users can now generate traditional, combined, syndromic, and even weighted-incidence syndromic combination antibiograms (WISCA). With this, we follow the logic in the previously described work of Klinker et al. (2021, DOI 10.1177/20499361211011373 ) and Barbieri et al. (2021, DOI 10.1186/s13756-021-00939-2 ).
The help page for antibiogram()
extensively elaborates on use cases, and antibiogram()
also supports printing in R Markdown and Quarto, with support for 20 languages.
Furthermore, different plotting methods were implemented to allow for graphical visualisations as well.
-
Interpretation of MIC and disk diffusion values
+
Interpretation of MIC and disk diffusion values
The clinical breakpoints and intrinsic resistance of EUCAST 2022 and CLSI 2022 have been added for as.sir()
. EUCAST 2022 (v12.0) is now the new default guideline for all MIC and disks diffusion interpretations, and for eucast_rules()
to apply EUCAST Expert Rules. The default guideline (EUCAST) can now be changed with the new AMR_guideline
option, such as: options(AMR_guideline = "CLSI 2020")
.
With the new arguments include_PKPD
(default: TRUE
) and include_screening
(default: FALSE
), users can now specify whether breakpoints for screening and from the PK/PD table should be included when interpreting MICs and disks diffusion values. These options can be set globally, which can be read in our new manual .
Interpretation guidelines older than 10 years were removed, the oldest now included guidelines of EUCAST and CLSI are from 2013.
-
Supported languages
+
Supported languages
We added support for the following ten languages: Chinese (simplified), Czech, Finnish, Greek, Japanese, Norwegian (bokmål), Polish, Romanian, Turkish and Ukrainian. All antibiotic names are now available in these languages, and the AMR package will automatically determine a supported language based on the user’s system language.
We are very grateful for the valuable input by our colleagues from other countries. The AMR
package is now available in 20 languages in total, and according to download stats used in almost all countries in the world!
-
Outbreak management
+
Outbreak management
For analysis in outbreak management, we updated the get_episode()
and is_new_episode()
functions: they now contain an argument case_free_days
. This argument can be used to quantify the duration of case-free days (the inter-epidemic interval), after which a new episode will start.
This is common requirement in outbreak management, e.g. when determining the number of norovirus outbreaks in a hospital. The case-free period could then be 14 or 28 days, so that new norovirus cases after that time will be considered a different (or new) episode.
-
Microbiological taxonomy
+
Microbiological taxonomy
The microorganisms
data set no longer relies on the Catalogue of Life, but on the List of Prokaryotic names with Standing in Nomenclature (LPSN) and is supplemented with the ‘backbone taxonomy’ from the Global Biodiversity Information Facility (GBIF). The structure of this data set has changed to include separate LPSN and GBIF identifiers. Almost all previous MO codes were retained. It contains over 1,400 taxonomic names from 2022.
We previously relied on our own experience to categorise species into pathogenic groups, but we were very happy to encounter the very recent work of Bartlett et al. (2022, DOI 10.1099/mic.0.001269 ) who extensively studied medical-scientific literature to categorise all bacterial species into groups. See mo_matching_score()
on how their work was incorporated into the prevalence
column of the microorganisms
data set. Using their results, the as.mo()
and all mo_*()
functions are now much better capable of converting user input to valid taxonomic records.
The new function add_custom_microorganisms()
allows users to add custom microorganisms to the AMR
package.
@@ -211,7 +210,7 @@
The microorganisms.old
data set was removed, and all previously accepted names are now included in the microorganisms
data set. A new column status
contains "accepted"
for currently accepted names and "synonym"
for taxonomic synonyms; currently invalid names. All previously accepted names now have a microorganisms ID and - if available - an LPSN, GBIF and SNOMED CT identifier.
-
Antibiotic agents and selectors
+
Antibiotic agents and selectors
The new function add_custom_antimicrobials()
allows users to add custom antimicrobial codes and names to the AMR
package.
The antibiotics
data set was greatly updated:
The following 20 antibiotics have been added (also includes the new J01RA ATC group ): azithromycin/fluconazole/secnidazole (AFC), cefepime/amikacin (CFA), cefixime/ornidazole (CEO), ceftriaxone/beta-lactamase inhibitor (CEB), ciprofloxacin/metronidazole (CIM), ciprofloxacin/ornidazole (CIO), ciprofloxacin/tinidazole (CIT), furazidin (FUR), isoniazid/sulfamethoxazole/trimethoprim/pyridoxine (IST), lascufloxacin (LSC), levofloxacin/ornidazole (LEO), nemonoxacin (NEM), norfloxacin/metronidazole (NME), norfloxacin/tinidazole (NTI), ofloxacin/ornidazole (OOR), oteseconazole (OTE), rifampicin/ethambutol/isoniazid (REI), sarecycline (SRC), tetracycline/oleandomycin (TOL), and thioacetazone (TAT)
@@ -223,21 +222,21 @@
Also, we added support for using antibiotic selectors in scoped dplyr
verbs (with or without using vars()
), such as in: ... %>% summarise_at(aminoglycosides(), resistance)
, please see resistance()
for examples.
-
Antiviral agents
+
Antiviral agents
We now added extensive support for antiviral agents! For the first time, the AMR
package has extensive support for antiviral drugs and to work with their names, codes and other data in any way.
The antivirals
data set has been extended with 18 new drugs (also from the new J05AJ ATC group ) and now also contains antiviral identifiers and LOINC codes
A new data type av
(antivirals ) has been added, which is functionally similar to ab
for antibiotics
Functions as.av()
, av_name()
, av_atc()
, av_synonyms()
, av_from_text()
have all been added as siblings to their ab_*()
equivalents
-
Other new functions
+
Other new functions
Function sir_confidence_interval()
to add confidence intervals in AMR calculation. This is now also included in sir_df()
and proportion_df()
.
Function mean_amr_distance()
to calculate the mean AMR distance. The mean AMR distance is a normalised numeric value to compare AMR test results and can help to identify similar isolates, without comparing antibiograms by hand.
Function sir_interpretation_history()
to view the history of previous runs of as.sir()
(previously as.rsi()
). This returns a ‘logbook’ with the selected guideline, reference table and specific interpretation of each row in a data set on which as.sir()
was run.
-
Changes
+
Changes
get_episode()
(and its wrapper is_new_episode()
):
Fix for working with NA
values
@@ -285,7 +284,7 @@
mo_synonyns()
now contains the scientific reference as names
-
Other
+
Other
Added Peter Dutey-Magni, Dmytro Mykhailenko, Anton Mymrikov, Andrew Norgan, Jonas Salm, and Anita Williams as contributors, to thank them for their valuable input
New website to make use of the new Bootstrap 5 and pkgdown 2.0. The website now contains results for all examples and will be automatically regenerated with every change to our repository, using GitHub Actions
All R and Rmd files in this project are now styled using the styler
package
diff --git a/pkgdown.yml b/pkgdown.yml
index e3b9e7f4..543f1d3b 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -11,7 +11,7 @@ articles:
datasets: datasets.html
resistance_predict: resistance_predict.html
welcome_to_AMR: welcome_to_AMR.html
-last_built: 2023-03-11T16:20Z
+last_built: 2023-03-12T12:06Z
urls:
reference: https://msberends.github.io/AMR/reference
article: https://msberends.github.io/AMR/articles
diff --git a/reference/AMR-deprecated.html b/reference/AMR-deprecated.html
index b580bf3a..2b6d4499 100644
--- a/reference/AMR-deprecated.html
+++ b/reference/AMR-deprecated.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/AMR-options.html b/reference/AMR-options.html
index 0d2d37ba..b4b382b0 100644
--- a/reference/AMR-options.html
+++ b/reference/AMR-options.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/AMR.html b/reference/AMR.html
index 45ab3ab1..af957088 100644
--- a/reference/AMR.html
+++ b/reference/AMR.html
@@ -1,13 +1,19 @@
The AMR Package — AMR • AMR (for R) The AMR Package — AMR • AMR (for R)
@@ -18,7 +24,7 @@ The AMR package is available in English, Chinese, Danish, Dutch, French, German,
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -153,9 +159,12 @@ The AMR package is available in English, Chinese, Danish, Dutch, French, German,
Welcome to the AMR
package.
The AMR
package is a free and open-source R package with zero dependencies to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. Our aim is to provide a standard for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. Many different researchers from around the globe are continually helping us to make this a successful and durable project!
-
This work was published in the Journal of Statistical Software (Volume 104(3); DOI 10.18637/jss.v104.i03 ) and formed the basis of two PhD theses (DOI 10.33612/diss.177417131 and DOI 10.33612/diss.192486375 ).
-
After installing this package, R knows ~52 000 (updated December 2022) and all ~600 antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral breakpoint guidelines from CLSI and EUCAST are included from the last 10 years. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources . It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen , in collaboration with non-profit organisations Certe Medical Diagnostics and Advice Foundation and University Medical Center Groningen .
-
The AMR
package is available in English, Chinese, Danish, Dutch, French, German, Greek, Italian, Japanese, Polish, Portuguese, Russian, Spanish, Swedish, Turkish and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.
+
This work was published in the Journal of Statistical Software (Volume 104(3); doi:jss.v104.i03
+) and formed the basis of two PhD theses (doi:10.33612/diss.177417131
+ and doi:10.33612/diss.192486375
+).
+
After installing this package, R knows ~52 000 microorganisms (updated December 2022) and all ~600 antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral breakpoint guidelines from CLSI and EUCAST are included from the last 10 years. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources . It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen , in collaboration with non-profit organisations Certe Medical Diagnostics and Advice Foundation and University Medical Center Groningen .
+
The AMR
package is available in English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.
diff --git a/reference/Rplot005.png b/reference/Rplot005.png
index f0dda5ee..d01d6a97 100644
Binary files a/reference/Rplot005.png and b/reference/Rplot005.png differ
diff --git a/reference/Rplot006.png b/reference/Rplot006.png
index 1250669f..fc31e5bc 100644
Binary files a/reference/Rplot006.png and b/reference/Rplot006.png differ
diff --git a/reference/Rplot007.png b/reference/Rplot007.png
index 8e3afef1..dbe13310 100644
Binary files a/reference/Rplot007.png and b/reference/Rplot007.png differ
diff --git a/reference/Rplot008.png b/reference/Rplot008.png
index 79a277e7..7029d7e2 100644
Binary files a/reference/Rplot008.png and b/reference/Rplot008.png differ
diff --git a/reference/Rplot009.png b/reference/Rplot009.png
index 23ccfdd5..4cfae799 100644
Binary files a/reference/Rplot009.png and b/reference/Rplot009.png differ
diff --git a/reference/WHOCC.html b/reference/WHOCC.html
index b4a9eced..065d909a 100644
--- a/reference/WHOCC.html
+++ b/reference/WHOCC.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/WHONET.html b/reference/WHONET.html
index 878afe54..2d5701b5 100644
--- a/reference/WHONET.html
+++ b/reference/WHONET.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/ab_from_text.html b/reference/ab_from_text.html
index 6eac18c0..9992f4d4 100644
--- a/reference/ab_from_text.html
+++ b/reference/ab_from_text.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/ab_property.html b/reference/ab_property.html
index 2c8e6e83..582b4d43 100644
--- a/reference/ab_property.html
+++ b/reference/ab_property.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/add_custom_antimicrobials.html b/reference/add_custom_antimicrobials.html
index 70d46eb8..6c9327c7 100644
--- a/reference/add_custom_antimicrobials.html
+++ b/reference/add_custom_antimicrobials.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -162,13 +162,13 @@
Details
Important: Due to how R works, the add_custom_antimicrobials()
function has to be run in every R session - added antimicrobials are not stored between sessions and are thus lost when R is exited.
-
There are two ways to automate this process:
+
There are two ways to circumvent this and automate the process of adding antimicrobials:
Method 1: Using the package option AMR_custom_ab
, which is the preferred method. To use this method:
Create a data set in the structure of the antibiotics data set (containing at the very least columns "ab" and "name") and save it with saveRDS()
to a location of choice, e.g. "~/my_custom_ab.rds"
, or any remote location.
Set the file location to the package option AMR_custom_ab
: options(AMR_custom_ab = "~/my_custom_ab.rds")
. This can even be a remote file location, such as an https URL. Since options are not saved between R sessions, it is best to save this option to the .Rprofile
file so that it will be loaded on start-up of R . To do this, open the .Rprofile
file using e.g. utils::file.edit("~/.Rprofile")
, add this text and save the file:
# Add custom antimicrobial codes:
options ( AMR_custom_ab = "~/my_custom_ab.rds" )
Upon package load, this file will be loaded and run through the add_custom_antimicrobials()
function.
-Method 2: Loading the antimicrobial additions directly from your .Rprofile
file. An important downside is that this requires the AMR
package to be installed or else this method will fail. To use this method:
Edit the .Rprofile
file using e.g. utils::file.edit("~/.Rprofile")
.
+Method 2: Loading the antimicrobial additions directly from your .Rprofile
file. Note that the definitions will be stored in a user-specific R file, which is a suboptimal workflow. To use this method:
Edit the .Rprofile
file using e.g. utils::file.edit("~/.Rprofile")
.
Add a text like below and save the file:
# Add custom antibiotic drug codes:
AMR :: add_custom_antimicrobials (
diff --git a/reference/add_custom_microorganisms.html b/reference/add_custom_microorganisms.html
index 69f6bc8b..09b4ae23 100644
--- a/reference/add_custom_microorganisms.html
+++ b/reference/add_custom_microorganisms.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -163,20 +163,20 @@
Details
This function will fill in missing taxonomy for you, if specific taxonomic columns are missing, see Examples .
Important: Due to how R works, the add_custom_microorganisms()
function has to be run in every R session - added microorganisms are not stored between sessions and are thus lost when R is exited.
-There are two ways to automate this process:
+There are two ways to circumvent this and automate the process of adding microorganisms:
Method 1: Using the package option AMR_custom_mo
, which is the preferred method. To use this method:
Create a data set in the structure of the microorganisms data set (containing at the very least column "genus") and save it with saveRDS()
to a location of choice, e.g. "~/my_custom_mo.rds"
, or any remote location.
Set the file location to the package option AMR_custom_mo
: options(AMR_custom_mo = "~/my_custom_mo.rds")
. This can even be a remote file location, such as an https URL. Since options are not saved between R sessions, it is best to save this option to the .Rprofile
file so that it will be loaded on start-up of R . To do this, open the .Rprofile
file using e.g. utils::file.edit("~/.Rprofile")
, add this text and save the file:
# Add custom microorganism codes:
options ( AMR_custom_mo = "~/my_custom_mo.rds" )
Upon package load, this file will be loaded and run through the add_custom_microorganisms()
function.
-Method 2: Loading the microorganism directly from your .Rprofile
file. An important downside is that this requires the AMR
package to be installed or else this method will fail. To use this method:
Edit the .Rprofile
file using e.g. utils::file.edit("~/.Rprofile")
.
+Method 2: Loading the microorganism directly from your .Rprofile
file. Note that the definitions will be stored in a user-specific R file, which is a suboptimal workflow. To use this method:
Edit the .Rprofile
file using e.g. utils::file.edit("~/.Rprofile")
.
Add a text like below and save the file:
-Use clear_custom_microorganisms()
to clear the previously added antimicrobials.
+Use clear_custom_microorganisms()
to clear the previously added microorganisms.
See also
diff --git a/reference/age.html b/reference/age.html
index 0527c617..b2dbdfd3 100644
--- a/reference/age.html
+++ b/reference/age.html
@@ -10,7 +10,7 @@
AMR (for R)
-
1.8.2.9151
+
1.8.2.9152
@@ -205,16 +205,16 @@
df
#> birth_date age age_exact age_at_y2k
-#> 1 1944-11-05 78 78.34521 55
-#> 2 1966-09-12 56 56.49315 33
-#> 3 1991-11-04 31 31.34795 8
-#> 4 1992-01-14 31 31.15342 7
-#> 5 1990-12-03 32 32.26849 9
-#> 6 1960-03-28 62 62.95342 39
-#> 7 1973-08-14 49 49.57260 26
-#> 8 1956-06-07 66 66.75890 43
-#> 9 1973-10-18 49 49.39452 26
-#> 10 1968-11-24 54 54.29315 31
+#> 1 1968-02-06 55 55.09315 31
+#> 2 1951-04-09 71 71.92329 48
+#> 3 1972-01-24 51 51.12877 27
+#> 4 1991-09-11 31 31.49863 8
+#> 5 1984-05-14 38 38.82740 15
+#> 6 1975-01-04 48 48.18356 24
+#> 7 1983-11-09 39 39.33699 16
+#> 8 1972-11-16 50 50.31781 27
+#> 9 1958-08-26 64 64.54247 41
+#> 10 1975-05-07 47 47.84658 24
On this page
diff --git a/reference/age_groups.html b/reference/age_groups.html
index 3e657985..f8827b48 100644
--- a/reference/age_groups.html
+++ b/reference/age_groups.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/antibiogram.html b/reference/antibiogram.html
index f6e0c2fe..1124b180 100644
--- a/reference/antibiogram.html
+++ b/reference/antibiogram.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/antibiotic_class_selectors.html b/reference/antibiotic_class_selectors.html
index c0f45335..7b91139c 100644
--- a/reference/antibiotic_class_selectors.html
+++ b/reference/antibiotic_class_selectors.html
@@ -12,7 +12,7 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -610,9 +610,9 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
#> kefzol
#> <sir>
#> 1 I
-#> 2 I
-#> 3 I
-#> 4 S
+#> 2 R
+#> 3 S
+#> 4 R
#> 5 S
if ( require ( "dplyr" ) ) {
@@ -891,7 +891,7 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
#> J01CA01
#> 1 S
if ( require ( "dplyr" ) ) {
- # with recent versions of dplyr this is all equal:
+ # with recent versions of dplyr, this is all equal:
x <- example_isolates [ carbapenems ( ) == "R" , ]
y <- example_isolates %>% filter ( carbapenems ( ) == "R" )
z <- example_isolates %>% filter ( if_all ( carbapenems ( ) , ~ .x == "R" ) )
@@ -910,29 +910,13 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
# data.table --------------------------------------------------------------
# data.table is supported as well, just use it in the same way as with
-# base R, but add `with = FALSE` if using a single AB selector:
+# base R, but add `with = FALSE` if using a single AB selector.
if ( require ( "data.table" ) ) {
dt <- as.data.table ( example_isolates )
- print (
- dt [ , carbapenems ( ) ] # incorrect, returns column *names*
- )
- print (
- dt [ , carbapenems ( ) , with = FALSE ] # so `with = FALSE` is required
- )
-
- # for multiple selections or AB selectors, `with = FALSE` is not needed:
- print (
- dt [ , c ( "mo" , aminoglycosides ( ) ) ]
- )
- print (
- dt [ , c ( carbapenems ( ) , aminoglycosides ( ) ) ]
- )
-
- # row filters are also supported:
- print ( dt [ any ( carbapenems ( ) == "S" ) , ] )
- print ( dt [ any ( carbapenems ( ) == "S" ) , penicillins ( ) , with = FALSE ] )
+ # this does not work, it returns column *names*
+ dt [ , carbapenems ( ) ]
}
#> Loading required package: data.table
#>
@@ -947,6 +931,10 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
#> [1] "IPM" "MEM"
#> attr(,"class")
#> [1] "ab_selector" "character"
+if ( require ( "data.table" ) ) {
+ # so `with = FALSE` is required
+ dt [ , carbapenems ( ) , with = FALSE ]
+}
#> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem)
#> IPM MEM
#> 1: <NA> <NA>
@@ -960,6 +948,11 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
#> 1998: S S
#> 1999: S S
#> 2000: S S
+
+# for multiple selections or AB selectors, `with = FALSE` is not needed:
+if ( require ( "data.table" ) ) {
+ dt [ , c ( "mo" , aminoglycosides ( ) ) ]
+}
#> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB'
#> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin)
#> mo GEN TOB AMK KAN
@@ -974,6 +967,9 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
#> 1998: B_STPHY_CONS S <NA> <NA> <NA>
#> 1999: B_ESCHR_COLI S S <NA> <NA>
#> 2000: B_KLBSL_PNMN S S <NA> <NA>
+if ( require ( "data.table" ) ) {
+ dt [ , c ( carbapenems ( ) , aminoglycosides ( ) ) ]
+}
#> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem)
#> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB'
#> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin)
@@ -989,6 +985,11 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
#> 1998: S S S <NA> <NA> <NA>
#> 1999: S S S S <NA> <NA>
#> 2000: S S S S <NA> <NA>
+
+# row filters are also supported:
+if ( require ( "data.table" ) ) {
+ dt [ any ( carbapenems ( ) == "S" ) , ]
+}
#> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem)
#> date patient age gender ward mo PEN OXA FLC AMX
#> 1: 2002-01-19 738003 71 M Clinical B_ESCHR_COLI R <NA> <NA> <NA>
@@ -1038,6 +1039,9 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
#> 907: <NA> <NA> R <NA> <NA>
#> 908: <NA> <NA> S <NA> R
#> 909: <NA> <NA> S <NA> R
+if ( require ( "data.table" ) ) {
+ dt [ any ( carbapenems ( ) == "S" ) , penicillins ( ) , with = FALSE ]
+}
#> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem)
#> ℹ For penicillins() using columns 'PEN' (benzylpenicillin), 'OXA'
#> (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC'
diff --git a/reference/antibiotics.html b/reference/antibiotics.html
index 9ff61ede..f973a6e2 100644
--- a/reference/antibiotics.html
+++ b/reference/antibiotics.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/as.ab.html b/reference/as.ab.html
index 36e7255b..83c1c710 100644
--- a/reference/as.ab.html
+++ b/reference/as.ab.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/as.av.html b/reference/as.av.html
index 57f38e72..7ee25081 100644
--- a/reference/as.av.html
+++ b/reference/as.av.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/as.disk.html b/reference/as.disk.html
index 31f86d43..db31d454 100644
--- a/reference/as.disk.html
+++ b/reference/as.disk.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/as.mic.html b/reference/as.mic.html
index 7d98ed6d..d3b8bd68 100644
--- a/reference/as.mic.html
+++ b/reference/as.mic.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/as.mo.html b/reference/as.mo.html
index 04dfc3fe..4d5b2e00 100644
--- a/reference/as.mo.html
+++ b/reference/as.mo.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/as.sir.html b/reference/as.sir.html
index 14a6ce51..f4a51af4 100644
--- a/reference/as.sir.html
+++ b/reference/as.sir.html
@@ -12,7 +12,7 @@ All breakpoints used for interpretation are publicly available in the clinical_b
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -534,16 +534,16 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> # A tibble: 50 × 17
#> datetime index ab_input ab_guid…¹ mo_in…² mo_guideline guide…³
#> <dttm> <int> <chr> <ab> <chr> <mo> <chr>
-#> 1 2023-03-11 16:20:56 1 TOB TOB Escher… B_[ORD]_ENTRBCTR EUCAST…
-#> 2 2023-03-11 16:20:56 1 GEN GEN Escher… B_[ORD]_ENTRBCTR EUCAST…
-#> 3 2023-03-11 16:20:56 1 CIP CIP Escher… B_[ORD]_ENTRBCTR EUCAST…
-#> 4 2023-03-11 16:20:56 1 AMP AMP Escher… B_[ORD]_ENTRBCTR EUCAST…
-#> 5 2023-03-11 16:20:51 1 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
-#> 6 2023-03-11 16:20:51 2 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
-#> 7 2023-03-11 16:20:51 3 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
-#> 8 2023-03-11 16:20:51 4 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
-#> 9 2023-03-11 16:20:51 5 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
-#> 10 2023-03-11 16:20:51 6 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
+#> 1 2023-03-12 12:07:26 1 TOB TOB Escher… B_[ORD]_ENTRBCTR EUCAST…
+#> 2 2023-03-12 12:07:26 1 GEN GEN Escher… B_[ORD]_ENTRBCTR EUCAST…
+#> 3 2023-03-12 12:07:26 1 CIP CIP Escher… B_[ORD]_ENTRBCTR EUCAST…
+#> 4 2023-03-12 12:07:25 1 AMP AMP Escher… B_[ORD]_ENTRBCTR EUCAST…
+#> 5 2023-03-12 12:07:20 1 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
+#> 6 2023-03-12 12:07:20 2 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
+#> 7 2023-03-12 12:07:20 3 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
+#> 8 2023-03-12 12:07:20 4 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
+#> 9 2023-03-12 12:07:20 5 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
+#> 10 2023-03-12 12:07:20 6 CIP CIP B_ESCH… B_[ORD]_ENTRBCTR EUCAST…
#> # … with 40 more rows, 10 more variables: ref_table <chr>, method <chr>,
#> # input <dbl>, outcome <sir>, breakpoint_S_R <chr>, ab_considered <lgl>,
#> # mo_considered <lgl>, breakpoint_S <lgl>, breakpoint_R <lgl>,
diff --git a/reference/atc_online.html b/reference/atc_online.html
index 54fe55c4..50378747 100644
--- a/reference/atc_online.html
+++ b/reference/atc_online.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/av_from_text.html b/reference/av_from_text.html
index 17ab5737..12fde243 100644
--- a/reference/av_from_text.html
+++ b/reference/av_from_text.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/av_property.html b/reference/av_property.html
index cafba6cf..f00e3e0e 100644
--- a/reference/av_property.html
+++ b/reference/av_property.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/availability.html b/reference/availability.html
index 714c5e3d..eeb8a428 100644
--- a/reference/availability.html
+++ b/reference/availability.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html
index c1210a4b..b5ddab75 100644
--- a/reference/bug_drug_combinations.html
+++ b/reference/bug_drug_combinations.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html
index dca4139a..d5309276 100644
--- a/reference/clinical_breakpoints.html
+++ b/reference/clinical_breakpoints.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/count.html b/reference/count.html
index 85facd1e..a2b2c2eb 100644
--- a/reference/count.html
+++ b/reference/count.html
@@ -12,7 +12,7 @@ count_resistant() should be used to count resistant isolates, count_susceptible(
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html
index f92add62..cca41709 100644
--- a/reference/custom_eucast_rules.html
+++ b/reference/custom_eucast_rules.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/dosage.html b/reference/dosage.html
index a9f27204..712872e5 100644
--- a/reference/dosage.html
+++ b/reference/dosage.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/eucast_rules.html b/reference/eucast_rules.html
index 294a3074..59709032 100644
--- a/reference/eucast_rules.html
+++ b/reference/eucast_rules.html
@@ -12,7 +12,7 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/example_isolates.html b/reference/example_isolates.html
index 3f540197..bbf54977 100644
--- a/reference/example_isolates.html
+++ b/reference/example_isolates.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html
index b1451c6c..a68866aa 100644
--- a/reference/example_isolates_unclean.html
+++ b/reference/example_isolates_unclean.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/first_isolate.html b/reference/first_isolate.html
index 1d36275b..cd9df859 100644
--- a/reference/first_isolate.html
+++ b/reference/first_isolate.html
@@ -12,7 +12,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/g.test.html b/reference/g.test.html
index e12249c3..a7486019 100644
--- a/reference/g.test.html
+++ b/reference/g.test.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/get_episode.html b/reference/get_episode.html
index 1946ba9b..2cc4ddf8 100644
--- a/reference/get_episode.html
+++ b/reference/get_episode.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -246,27 +246,30 @@
df <- example_isolates [ sample ( seq_len ( 2000 ) , size = 100 ) , ]
get_episode ( df $ date , episode_days = 60 ) # indices
-#> [1] 10 16 28 4 20 13 14 40 31 24 7 7 47 11 46 8 32 25 48 13 5 19 45 44 37
-#> [26] 7 18 12 6 23 16 36 33 49 2 13 11 4 37 39 25 26 16 21 22 42 43 26 44 15
-#> [51] 45 41 15 21 39 3 28 17 15 39 10 11 47 29 9 27 41 47 4 34 13 6 31 38 38
-#> [76] 50 25 40 23 1 48 24 30 12 35 48 51 46 22 16 13 27 16 49 32 35 47 13 17 29
+#> [1] 46 5 14 31 1 26 46 34 23 26 16 39 10 16 37 45 43 4 39 7 26 23 6 48 42
+#> [26] 16 48 41 46 41 11 3 16 11 1 14 21 48 27 16 14 24 10 10 12 13 14 46 19 17
+#> [51] 13 2 8 33 23 34 17 25 40 8 42 3 32 36 1 41 49 50 35 20 17 11 42 38 49
+#> [76] 9 26 28 6 22 15 3 41 44 31 3 43 18 50 17 20 1 47 31 43 4 29 27 22 30
is_new_episode ( df $ date , episode_days = 60 ) # TRUE/FALSE
-#> [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE
-#> [13] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE
-#> [25] TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE
-#> [37] FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE
-#> [49] FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE
-#> [61] FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE
-#> [73] FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
-#> [85] TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
-#> [97] FALSE FALSE FALSE FALSE
+#> [1] TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE
+#> [13] TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE
+#> [25] TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE
+#> [37] TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE
+#> [49] TRUE TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE
+#> [61] FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE
+#> [73] FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE
+#> [85] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
+#> [97] TRUE FALSE FALSE TRUE
# filter on results from the third 60-day episode only, using base R
df [ which ( get_episode ( df $ date , 60 ) == 3 ) , ]
-#> # A tibble: 1 × 46
-#> date patient age gender ward mo PEN OXA FLC AMX
-#> <date> <chr> <dbl> <chr> <chr> <mo> <sir> <sir> <sir> <sir>
-#> 1 2003-01-04 89B405 81 M Clinical B_STRPT_PNMN S NA NA S
+#> # A tibble: 4 × 46
+#> date patient age gender ward mo PEN OXA FLC AMX
+#> <date> <chr> <dbl> <chr> <chr> <mo> <sir> <sir> <sir> <sir>
+#> 1 2002-08-19 A49852 70 M Clinical B_ESCHR_COLI R NA NA NA
+#> 2 2002-08-14 785317 51 F ICU B_ESCHR_COLI R NA NA NA
+#> 3 2002-09-08 B8CB09 60 F Outpatie… B_STPHY_CONS S NA S NA
+#> 4 2002-07-30 218912 76 F ICU B_ESCHR_COLI R NA NA NA
#> # … with 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>,
#> # FEP <sir>, CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>,
#> # GEN <sir>, TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>,
@@ -301,19 +304,19 @@
arrange ( patient , condition , date )
}
#> # A tibble: 100 × 4
-#> # Groups: patient, condition [99]
+#> # Groups: patient, condition [96]
#> patient date condition new_episode
#> <chr> <date> <chr> <lgl>
-#> 1 006827 2009-07-24 A TRUE
-#> 2 015240 2007-11-15 C TRUE
-#> 3 022060 2004-05-04 C TRUE
-#> 4 032343 2003-06-09 C TRUE
-#> 5 035268 2011-05-31 A TRUE
-#> 6 066601 2013-10-30 B TRUE
-#> 7 078381 2014-06-28 A TRUE
-#> 8 097186 2015-10-28 C TRUE
-#> 9 114570 2003-04-22 B TRUE
-#> 10 16F0F7 2010-01-17 B TRUE
+#> 1 008218 2009-05-05 C TRUE
+#> 2 036063 2010-01-28 A TRUE
+#> 3 047634 2004-06-28 B TRUE
+#> 4 05C73F 2006-01-12 C TRUE
+#> 5 067927 2002-02-05 A TRUE
+#> 6 071099 2005-01-11 A TRUE
+#> 7 105248 2005-06-16 C TRUE
+#> 8 141061 2014-10-22 A TRUE
+#> 9 1435C8 2004-03-03 B TRUE
+#> 10 195736 2008-08-29 A TRUE
#> # … with 90 more rows
if ( require ( "dplyr" ) ) {
@@ -327,19 +330,19 @@
arrange ( patient , ward , date )
}
#> # A tibble: 100 × 5
-#> # Groups: ward, patient [97]
+#> # Groups: ward, patient [94]
#> ward date patient new_index new_logical
#> <chr> <date> <chr> <int> <lgl>
-#> 1 Clinical 2009-07-24 006827 1 TRUE
-#> 2 Clinical 2007-11-15 015240 1 TRUE
-#> 3 ICU 2004-05-04 022060 1 TRUE
-#> 4 Clinical 2003-06-09 032343 1 TRUE
-#> 5 ICU 2011-05-31 035268 1 TRUE
-#> 6 Clinical 2013-10-30 066601 1 TRUE
-#> 7 ICU 2014-06-28 078381 1 TRUE
-#> 8 Clinical 2015-10-28 097186 1 TRUE
-#> 9 ICU 2003-04-22 114570 1 TRUE
-#> 10 Clinical 2010-01-17 16F0F7 1 TRUE
+#> 1 Clinical 2009-05-05 008218 1 TRUE
+#> 2 Clinical 2010-01-28 036063 1 TRUE
+#> 3 Clinical 2004-06-28 047634 1 TRUE
+#> 4 Clinical 2006-01-12 05C73F 1 TRUE
+#> 5 ICU 2002-02-05 067927 1 TRUE
+#> 6 Clinical 2005-01-11 071099 1 TRUE
+#> 7 Clinical 2005-06-16 105248 1 TRUE
+#> 8 Clinical 2014-10-22 141061 1 TRUE
+#> 9 Clinical 2004-03-03 1435C8 1 TRUE
+#> 10 Clinical 2008-08-29 195736 1 TRUE
#> # … with 90 more rows
if ( require ( "dplyr" ) ) {
@@ -355,9 +358,9 @@
#> # A tibble: 3 × 5
#> ward n_patients n_episodes_365 n_episodes_60 n_episodes_30
#> <chr> <int> <int> <int> <int>
-#> 1 Clinical 62 12 40 50
-#> 2 ICU 29 10 21 24
-#> 3 Outpatient 6 5 5 6
+#> 1 Clinical 57 14 38 45
+#> 2 ICU 33 10 23 26
+#> 3 Outpatient 4 3 4 4
# grouping on patients and microorganisms leads to the same
# results as first_isolate() when using 'episode-based':
@@ -386,19 +389,19 @@
select ( group_vars ( . ) , flag_episode )
}
#> # A tibble: 100 × 4
-#> # Groups: patient, mo, ward [99]
-#> patient mo ward flag_episode
-#> <chr> <mo> <chr> <lgl>
-#> 1 902585 B_ESCHR_COLI Clinical TRUE
-#> 2 F81262 B_STRPT_PNMN Clinical TRUE
-#> 3 A24795 B_BCTRD_FRGL Clinical TRUE
-#> 4 A26548 B_STPHY_CONS ICU TRUE
-#> 5 ED4982 B_ESCHR_COLI ICU TRUE
-#> 6 240662 B_STRPT_PNMN Clinical TRUE
-#> 7 968584 B_PSDMN_AERG Clinical TRUE
-#> 8 B49718 F_CANDD_GLBR ICU TRUE
-#> 9 972623 B_STPHY_CONS Clinical TRUE
-#> 10 822083 B_ESCHR_COLI Clinical TRUE
+#> # Groups: patient, mo, ward [98]
+#> patient mo ward flag_episode
+#> <chr> <mo> <chr> <lgl>
+#> 1 527928 B_ESCHR_COLI Clinical TRUE
+#> 2 F35553 B_ENTRBC_CLOC ICU TRUE
+#> 3 671180 B_ESCHR_COLI Clinical TRUE
+#> 4 B61944 B_STPHY_CONS ICU TRUE
+#> 5 614772 B_STPHY_EPDR Clinical TRUE
+#> 6 B13757 B_STPHY_CONS Outpatient TRUE
+#> 7 758698 B_STPHY_HMNS ICU TRUE
+#> 8 960787 B_BCTRD_FRGL Clinical TRUE
+#> 9 551943 B_STPHY_AURS Clinical TRUE
+#> 10 B13757 B_STPHY_EPDR Outpatient TRUE
#> # … with 90 more rows
# }
diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html
index fc2171f9..5e3e6b75 100644
--- a/reference/ggplot_pca.html
+++ b/reference/ggplot_pca.html
@@ -10,7 +10,7 @@
AMR (for R)
-
1.8.2.9151
+
1.8.2.9152
diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html
index 2361a68a..d7fa2452 100644
--- a/reference/ggplot_sir.html
+++ b/reference/ggplot_sir.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html
index ebc7dc57..771d614e 100644
--- a/reference/guess_ab_col.html
+++ b/reference/guess_ab_col.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/index.html b/reference/index.html
index cca96073..bab056fc 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html
index 621c8118..bbc9c2a7 100644
--- a/reference/intrinsic_resistant.html
+++ b/reference/intrinsic_resistant.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html
index 402ac827..2f5d1f05 100644
--- a/reference/italicise_taxonomy.html
+++ b/reference/italicise_taxonomy.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/join.html b/reference/join.html
index a00f261d..d2d7d582 100644
--- a/reference/join.html
+++ b/reference/join.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html
index 68276b57..a30765c6 100644
--- a/reference/key_antimicrobials.html
+++ b/reference/key_antimicrobials.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/kurtosis.html b/reference/kurtosis.html
index 4783c0a2..3f2f811d 100644
--- a/reference/kurtosis.html
+++ b/reference/kurtosis.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -182,9 +182,9 @@
Examples
kurtosis ( rnorm ( 10000 ) )
-#> [1] 3.031233
+#> [1] 2.980382
kurtosis ( rnorm ( 10000 ) , excess = TRUE )
-#> [1] 0.03161914
+#> [1] 0.03954956
On this page
diff --git a/reference/like.html b/reference/like.html
index d6fb9fc3..ad7be2ec 100644
--- a/reference/like.html
+++ b/reference/like.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/mdro.html b/reference/mdro.html
index 2953d35a..88c4780b 100644
--- a/reference/mdro.html
+++ b/reference/mdro.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html
index 1781ccfc..17d2eb42 100644
--- a/reference/mean_amr_distance.html
+++ b/reference/mean_amr_distance.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -201,30 +201,31 @@
sir <- random_sir ( 10 )
sir
#> Class 'sir'
-#> [1] I R S S I I R S R S
+#> [1] R R S R S S R I R R
mean_amr_distance ( sir )
-#> [1] -0.621059 1.449138 -0.621059 -0.621059 -0.621059 -0.621059 1.449138
-#> [8] -0.621059 1.449138 -0.621059
+#> [1] 0.7745967 0.7745967 -1.1618950 0.7745967 -1.1618950 -1.1618950
+#> [7] 0.7745967 -1.1618950 0.7745967 0.7745967
mic <- random_mic ( 10 )
mic
#> Class 'mic'
-#> [1] 0.125 64 0.0625 1 <=0.01 2 0.025 2 8 0.5
+#> [1] 0.125 0.005 16 32 0.01 <=0.001 0.01 1 0.5
+#> [10] 4
mean_amr_distance ( mic )
-#> [1] -0.53828759 1.76490658 -0.79419805 0.22944380 -1.47078851 0.48535426
-#> [7] -1.13249328 0.48535426 0.99717519 -0.02646666
+#> [1] -0.1172241 -1.0092500 1.2273872 1.4194745 -0.8171627 -1.4552630
+#> [7] -0.8171627 0.4590379 0.2669505 0.8432125
# equal to the Z-score of their log2:
( log2 ( mic ) - mean ( log2 ( mic ) ) ) / sd ( log2 ( mic ) )
-#> [1] -0.53828759 1.76490658 -0.79419805 0.22944380 -1.47078851 0.48535426
-#> [7] -1.13249328 0.48535426 0.99717519 -0.02646666
+#> [1] -0.1172241 -1.0092500 1.2273872 1.4194745 -0.8171627 -1.4552630
+#> [7] -0.8171627 0.4590379 0.2669505 0.8432125
disk <- random_disk ( 10 )
disk
#> Class 'disk'
-#> [1] 43 46 34 46 35 11 29 42 49 42
+#> [1] 38 45 6 20 43 49 29 31 39 33
mean_amr_distance ( disk )
-#> [1] 0.4708967 0.7374420 -0.3287392 0.7374420 -0.2398908 -2.3722532
-#> [7] -0.7729814 0.3820483 1.0039873 0.3820483
+#> [1] 0.36674754 0.91296727 -2.13025696 -1.03781749 0.75690449 1.22509283
+#> [7] -0.33553498 -0.17947220 0.44477893 -0.02340942
y <- data.frame (
id = LETTERS [ 1 : 10 ] ,
@@ -235,21 +236,21 @@
)
y
#> id amox cipr gent tobr
-#> 1 A R 29 0.5 >=4
-#> 2 B R 23 4 2
-#> 3 C R 19 0.5 1
-#> 4 D S 23 0.5 1
-#> 5 E I 29 2 2
-#> 6 F I 23 1 1
-#> 7 G I 18 4 2
-#> 8 H S 19 1 >=4
-#> 9 I S 26 8 2
-#> 10 J S 20 4 1
+#> 1 A S 24 8 0.5
+#> 2 B R 21 8 16
+#> 3 C I 28 1 4
+#> 4 D S 24 4 1
+#> 5 E S 17 16 8
+#> 6 F S 17 2 4
+#> 7 G I 23 16 0.5
+#> 8 H R 19 16 0.25
+#> 9 I R 20 0.5 8
+#> 10 J I 27 16 8
mean_amr_distance ( y )
#> ℹ Calculating mean AMR distance based on columns "amox", "cipr", "gent",
#> and "tobr"
-#> [1] 0.8356833 0.6493326 -0.4169825 -0.6870116 0.3357761 -0.5197242
-#> [7] -0.1776166 -0.1333786 0.4847109 -0.3707894
+#> [1] -0.216474562 0.698891501 -0.010082051 -0.234063901 -0.060228857
+#> [6] -0.586746706 -0.145237897 -0.005286713 -0.028443276 0.587672462
y $ amr_distance <- mean_amr_distance ( y , where ( is.mic ) )
#> Error in .subset(x, j): invalid subscript type 'list'
y [ order ( y $ amr_distance ) , ]
@@ -265,17 +266,17 @@
}
#> ℹ Calculating mean AMR distance based on columns "amox", "cipr", "gent",
#> and "tobr"
-#> id amox cipr gent tobr amr_distance check_id_C
-#> 1 C R 19 0.5 1 -0.4169825 0.00000000
-#> 2 J S 20 4 1 -0.3707894 0.04619304
-#> 3 F I 23 1 1 -0.5197242 0.10274173
-#> 4 G I 18 4 2 -0.1776166 0.23936587
-#> 5 D S 23 0.5 1 -0.6870116 0.27002914
-#> 6 H S 19 1 >=4 -0.1333786 0.28360392
-#> 7 E I 29 2 2 0.3357761 0.75275856
-#> 8 I S 26 8 2 0.4847109 0.90169334
-#> 9 B R 23 4 2 0.6493326 1.06631508
-#> 10 A R 29 0.5 >=4 0.8356833 1.25266578
+#> id amox cipr gent tobr amr_distance check_id_C
+#> 1 C I 28 1 4 -0.010082051 0.000000000
+#> 2 H R 19 16 0.25 -0.005286713 0.004795338
+#> 3 I R 20 0.5 8 -0.028443276 0.018361225
+#> 4 E S 17 16 8 -0.060228857 0.050146806
+#> 5 G I 23 16 0.5 -0.145237897 0.135155846
+#> 6 A S 24 8 0.5 -0.216474562 0.206392511
+#> 7 D S 24 4 1 -0.234063901 0.223981850
+#> 8 F S 17 2 4 -0.586746706 0.576664654
+#> 9 J I 27 16 8 0.587672462 0.597754514
+#> 10 B R 21 8 16 0.698891501 0.708973552
if ( require ( "dplyr" ) ) {
# support for groups
example_isolates %>%
diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html
index d554f0c8..f9a6d58c 100644
--- a/reference/microorganisms.codes.html
+++ b/reference/microorganisms.codes.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/microorganisms.html b/reference/microorganisms.html
index 8e41db96..2ca64138 100644
--- a/reference/microorganisms.html
+++ b/reference/microorganisms.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html
index 6763be40..2b9c950d 100644
--- a/reference/mo_matching_score.html
+++ b/reference/mo_matching_score.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/mo_property.html b/reference/mo_property.html
index f90c4aba..07e73f19 100644
--- a/reference/mo_property.html
+++ b/reference/mo_property.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/mo_source.html b/reference/mo_source.html
index 03cabbcd..4d8295e5 100644
--- a/reference/mo_source.html
+++ b/reference/mo_source.html
@@ -12,7 +12,7 @@ This is the fastest way to have your organisation (or analysis) specific codes p
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/pca.html b/reference/pca.html
index 42160bf0..1d81095b 100644
--- a/reference/pca.html
+++ b/reference/pca.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/plot-1.png b/reference/plot-1.png
index 3d414e70..755a0101 100644
Binary files a/reference/plot-1.png and b/reference/plot-1.png differ
diff --git a/reference/plot-2.png b/reference/plot-2.png
index 727e1359..9bdb147d 100644
Binary files a/reference/plot-2.png and b/reference/plot-2.png differ
diff --git a/reference/plot-3.png b/reference/plot-3.png
index 4665a722..dcf36937 100644
Binary files a/reference/plot-3.png and b/reference/plot-3.png differ
diff --git a/reference/plot-4.png b/reference/plot-4.png
index 401ebf7c..281cfa45 100644
Binary files a/reference/plot-4.png and b/reference/plot-4.png differ
diff --git a/reference/plot-5.png b/reference/plot-5.png
index cd4a7451..043dbd70 100644
Binary files a/reference/plot-5.png and b/reference/plot-5.png differ
diff --git a/reference/plot-6.png b/reference/plot-6.png
index fdec033a..3e5310ee 100644
Binary files a/reference/plot-6.png and b/reference/plot-6.png differ
diff --git a/reference/plot-7.png b/reference/plot-7.png
index 803eaeeb..d3b6c62a 100644
Binary files a/reference/plot-7.png and b/reference/plot-7.png differ
diff --git a/reference/plot-8.png b/reference/plot-8.png
index 4eddec27..58549f29 100644
Binary files a/reference/plot-8.png and b/reference/plot-8.png differ
diff --git a/reference/plot-9.png b/reference/plot-9.png
index e2448361..2a47b5ad 100644
Binary files a/reference/plot-9.png and b/reference/plot-9.png differ
diff --git a/reference/plot.html b/reference/plot.html
index cc96ef61..2af46266 100644
--- a/reference/plot.html
+++ b/reference/plot.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/proportion.html b/reference/proportion.html
index d286ba97..0ca4372c 100644
--- a/reference/proportion.html
+++ b/reference/proportion.html
@@ -12,7 +12,7 @@ resistance() should be used to calculate resistance, susceptibility() should be
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/random.html b/reference/random.html
index 25e9cd97..dca50917 100644
--- a/reference/random.html
+++ b/reference/random.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -193,43 +193,42 @@
Examples
random_mic ( 25 )
#> Class 'mic'
-#> [1] 32 0.25 0.025 4 8 0.125 0.5 0.25 0.125 128 0.01 0.125
-#> [13] 0.025 4 0.005 256 8 0.01 256 128 0.125 0.002 0.25 64
-#> [25] 2
+#> [1] 1 0.005 4 16 0.01 1 16 0.25 0.005
+#> [10] 0.125 <=0.002 0.125 64 0.25 4 1 128 8
+#> [19] 64 >=256 0.25 8 >=256 2 16
random_disk ( 25 )
#> Class 'disk'
-#> [1] 27 8 20 42 15 40 27 37 23 32 26 48 6 47 10 50 43 19 48 46 38 37 37 40 32
+#> [1] 32 30 15 34 20 43 17 28 30 50 25 10 47 23 26 13 32 24 28 46 36 14 50 46 21
random_sir ( 25 )
#> Class 'sir'
-#> [1] I S R R R I I R S I S S I I I S S S S R S I R R S
+#> [1] S R S R I R S S S I S I R I I I S I R I S S R S I
# \donttest{
# make the random generation more realistic by setting a bug and/or drug:
random_mic ( 25 , "Klebsiella pneumoniae" ) # range 0.0625-64
#> Class 'mic'
-#> [1] 1 16 64 8 0.01 1 0.5 0.005 4 64
-#> [11] 0.01 16 0.5 0.001 0.025 0.005 16 0.25 2 0.0625
-#> [21] 0.001 0.005 2 0.25 64
+#> [1] 2 >=64 0.025 16 0.125 2 32 32 16
+#> [10] 0.5 2 0.0625 16 0.25 0.01 4 0.002 16
+#> [19] 1 <=0.001 0.0625 0.0625 8 >=64 2
random_mic ( 25 , "Klebsiella pneumoniae" , "meropenem" ) # range 0.0625-16
#> Class 'mic'
-#> [1] 16 0.5 32 1 2 <=0.25 1 1 0.5 16
-#> [11] 0.5 16 1 <=0.25 8 <=0.25 1 4 2 4
-#> [21] 4 0.5 0.5 32 2
+#> [1] 0.5 1 4 2 1 1 >=16 0.5 4 0.5 0.5 1 2 >=16 2
+#> [16] 4 0.5 8 2 >=16 0.5 4 8 2 1
random_mic ( 25 , "Streptococcus pneumoniae" , "meropenem" ) # range 0.0625-4
#> Class 'mic'
-#> [1] 2 2 >=4 2 1 0.25 >=4 0.25 2 0.125
-#> [11] 0.125 0.5 0.0625 0.25 0.25 0.125 1 0.25 1 2
-#> [21] 1 >=4 0.125 2 >=4
+#> [1] >=4 0.25 0.5 0.5 0.125 1 0.25 >=4 0.5 2
+#> [11] 0.5 1 0.0625 0.5 0.5 0.0625 2 0.125 1 1
+#> [21] 0.25 0.0625 1 0.25 0.125
random_disk ( 25 , "Klebsiella pneumoniae" ) # range 8-50
#> Class 'disk'
-#> [1] 17 13 10 44 40 18 34 19 15 9 17 28 12 35 47 40 49 34 23 21 31 43 34 42 19
+#> [1] 16 33 30 28 41 44 12 12 40 23 45 9 40 49 34 33 20 10 16 42 39 8 40 24 44
random_disk ( 25 , "Klebsiella pneumoniae" , "ampicillin" ) # range 11-17
#> Class 'disk'
-#> [1] 13 15 17 12 17 15 16 13 13 12 14 16 15 17 13 15 11 15 17 14 13 11 15 15 15
+#> [1] 13 13 17 11 14 12 13 13 13 11 15 13 15 15 11 13 14 12 13 12 17 16 15 14 11
random_disk ( 25 , "Streptococcus pneumoniae" , "ampicillin" ) # range 12-27
#> Class 'disk'
-#> [1] 27 23 16 16 16 24 19 18 18 18 23 22 15 17 24 22 18 15 21 23 26 23 26 20 22
+#> [1] 17 20 22 21 24 15 15 22 26 15 27 21 15 15 22 19 20 20 27 24 18 15 26 25 15
# }
diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html
index 1fed7f93..e9938d43 100644
--- a/reference/resistance_predict.html
+++ b/reference/resistance_predict.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/reference/skewness.html b/reference/skewness.html
index f097c379..693d1a7a 100644
--- a/reference/skewness.html
+++ b/reference/skewness.html
@@ -12,7 +12,7 @@ When negative ('left-skewed'): the left tail is longer; the mass of the distribu
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
@@ -181,7 +181,7 @@ When negative ('left-skewed'): the left tail is longer; the mass of the distribu
Examples
skewness ( runif ( 1000 ) )
-#> [1] 0.01243604
+#> [1] 0.004959649
On this page
diff --git a/reference/translate.html b/reference/translate.html
index fe5600a2..12803fde 100644
--- a/reference/translate.html
+++ b/reference/translate.html
@@ -10,7 +10,7 @@
AMR (for R)
- 1.8.2.9151
+ 1.8.2.9152
diff --git a/search.json b/search.json
index 92df37e7..f7ba5553 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to conduct AMR data analysis","text":"Conducting AMR data analysis unfortunately requires -depth knowledge different scientific fields, makes hard right. least, requires: Good questions (always start !) reliable data thorough understanding (clinical) epidemiology, understand clinical epidemiological relevance possible bias results thorough understanding (clinical) microbiology/infectious diseases, understand microorganisms causal infections implications pharmaceutical treatment, well understanding intrinsic acquired microbial resistance Experience data analysis microbiological tests results, understand determination limitations MIC values interpretations SIR values Availability biological taxonomy microorganisms probably normalisation factors pharmaceuticals, defined daily doses (DDD) Available (inter-)national guidelines, profound methods apply course, instantly provide knowledge experience. AMR package, aimed providing (1) tools simplify antimicrobial resistance data cleaning, transformation analysis, (2) methods easily incorporate international guidelines (3) scientifically reliable reference data, including requirements mentioned . AMR package enables standardised reproducible AMR data analysis, application evidence-based rules, determination first isolates, translation various codes microorganisms antimicrobial agents, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to conduct AMR data analysis","text":"tutorial, create fake demonstration data work . can skip Cleaning data already data ready. start analysis, try make structure data generally look like :","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"How to conduct AMR data analysis","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2 RStudio. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. also use cleaner package, can used cleaning data creating frequency tables. AMR package contains data set example_isolates_unclean, might look data users extracted laboratory systems: AMR data analysis, like microorganism column contain valid, --date taxonomy, antibiotic columns cleaned SIR values well.","code":"library(dplyr) library(ggplot2) library(AMR) # (if not yet installed, install with:) # install.packages(c(\"dplyr\", \"ggplot2\", \"AMR\")) example_isolates_unclean #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 E. coli R I S S #> 2 R7 A 2018-04-03 K. pneumoniae R I S S #> 3 P3 A 2014-09-19 E. coli R S S S #> 4 P10 A 2015-12-10 E. coli S I S S #> 5 B7 A 2015-03-02 E. coli S S S S #> 6 W3 A 2018-03-31 S. aureus R S R S #> 7 J8 A 2016-06-14 E. coli R S S S #> 8 M3 A 2015-10-25 E. coli R S S S #> 9 J3 A 2019-06-19 E. coli S S S S #> 10 G6 A 2015-04-27 S. aureus S S S S #> # … with 2,990 more rows # we will use 'our_data' as the data set name for this tutorial our_data <- example_isolates_unclean"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"How to conduct AMR data analysis","text":".mo(), users can transform arbitrary microorganism names codes current taxonomy. AMR package contains --date taxonomic data. specific, currently included data retrieved 11 Dec 2022. codes AMR packages come .mo() short, still human readable. importantly, .mo() supports kinds input: first character codes denote taxonomic kingdom, Bacteria (B), Fungi (F), Protozoa (P). AMR package also contain functions directly retrieve taxonomic properties, name, genus, species, family, order, even Gram-stain. start mo_ use .mo() internally, still arbitrary user input can used: Now can thus clean data: Apparently, uncertainty translation taxonomic codes. Let’s check : ’s good.","code":"as.mo(\"Klebsiella pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class 'mo' #> [1] B_KLBSL_PNMN mo_family(\"K. pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"K. pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"K. pneumoniae\") #> [1] \"pneumoniae\" mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\" mo_ref(\"K. pneumoniae\") #> [1] \"Trevisan, 1887\" mo_snomed(\"K. pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\" \"1098201000112108\" \"409801009\" #> [5] \"56415008\" \"714315002\" \"713926009\" our_data$bacteria <- as.mo(our_data$bacteria, info = TRUE) #> ℹ Microorganism translation was uncertain for four microorganisms. Run #> mo_uncertainties() to review these uncertainties, or use #> add_custom_microorganisms() to add custom entries. mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See ?mo_matching_score. #> #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Based on input \"E coli\" #> Also matched: Enterobacter cowanii (0.600), Eubacterium combesii #> (0.600), Eggerthia catenaformis (0.591), Eubacterium callanderi #> (0.591), Enterocloster citroniae (0.587), Eubacterium cylindroides #> (0.583), Enterococcus casseliflavus (0.577), Enterobacter cloacae #> cloacae (0.571), Ehrlichia canis (0.567), and Enterobacter cloacae #> dissolvens (0.565) #> -------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Based on input \"K pneumoniae\" #> Also matched: Klebsiella pneumoniae ozaenae (0.707), Klebsiella #> pneumoniae pneumoniae (0.688), Klebsiella pneumoniae rhinoscleromatis #> (0.658), Klebsiella pasteurii (0.500), Klebsiella planticola (0.500), #> Kingella potus (0.400), Kosakonia pseudosacchari (0.361), Kaistella #> palustris (0.333), Kocuria palustris (0.333), and Kocuria pelophila #> (0.333) #> -------------------------------------------------------------------------------- #> \"S. aureus\" -> Staphylococcus aureus (B_STPHY_AURS, 0.690) #> Based on input \"S aureus\" #> Also matched: Staphylococcus aureus aureus (0.643), Staphylococcus #> argenteus (0.625), Staphylococcus aureus anaerobius (0.625), #> Streptomyces argenteolus (0.483), Streptomyces aureus (0.474), #> Streptomyces azureus (0.467), Streptomyces aureorectus (0.444), #> Streptomyces auratus (0.433), Streptomyces aurantiogriseus (0.429), and #> Streptomyces aureocirculatus (0.429) #> -------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Based on input \"S pneumoniae\" #> Also matched: Streptococcus pseudopneumoniae (0.700), Serratia #> proteamaculans quinovora (0.545), Streptococcus pseudoporcinus (0.536), #> Staphylococcus pseudintermedius (0.532), Serratia proteamaculans #> proteamaculans (0.526), Salmonella Portanigra (0.524), Sphingomonas #> paucimobilis (0.520), Streptococcus pluranimalium (0.519), #> Streptococcus constellatus pharyngis (0.514), and Salmonella Pakistan #> (0.500) #> #> Only the first 10 other matches of each record are shown. Run #> print(mo_uncertainties(), n = ...) to view more entries, or save #> mo_uncertainties() to an object."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"How to conduct AMR data analysis","text":"column antibiotic test results must also cleaned. AMR package comes three new data types work test results: mic minimal inhibitory concentrations (MIC), disk disk diffusion diameters, sir SIR data interpreted already. package can also determine SIR values based MIC disk diffusion values, read .sir() page. now, just clean SIR columns data using dplyr: basically cleaning, time start data inclusion.","code":"# method 1, be explicit about the columns: our_data <- our_data %>% mutate_at(vars(AMX:GEN), as.sir) # method 2, let the AMR package determine the eligible columns our_data <- our_data %>% mutate_if(is_sir_eligible, as.sir) # result: our_data #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S #> 7 J8 A 2016-06-14 B_ESCHR_COLI R S S S #> 8 M3 A 2015-10-25 B_ESCHR_COLI R S S S #> 9 J3 A 2019-06-19 B_ESCHR_COLI S S S S #> 10 G6 A 2015-04-27 B_STPHY_AURS S S S S #> # … with 2,990 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"How to conduct AMR data analysis","text":"need know isolates can actually use analysis without repetition bias. conduct analysis antimicrobial resistance, must include first isolate every patient per episode (Hindler et al., Clin Infect Dis. 2007). , easily get overestimate underestimate resistance antibiotic. Imagine patient admitted MRSA found 5 different blood cultures following weeks (yes, countries like Netherlands blood drawing policies). resistance percentage oxacillin isolates overestimated, included MRSA . clearly selection bias. Clinical Laboratory Standards Institute (CLSI) appoints follows: (…) preparing cumulative antibiogram guide clinical decisions empirical antimicrobial therapy initial infections, first isolate given species per patient, per analysis period (eg, one year) included, irrespective body site, antimicrobial susceptibility profile, phenotypical characteristics (eg, biotype). first isolate easily identified, cumulative antimicrobial susceptibility test data prepared using first isolate generally comparable cumulative antimicrobial susceptibility test data calculated methods, providing duplicate isolates excluded. M39-A4 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 4th Edition. CLSI, 2014. Chapter 6.4 AMR package includes methodology first_isolate() function able apply four different methods defined Hindler et al. 2007: phenotype-based, episode-based, patient-based, isolate-based. right method depends goals analysis, default phenotype-based method case method properly correct duplicate isolates. Read methods first_isolate() page. outcome function can easily added data: 88% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 626 isolates analysis. Now data looks like: Time analysis.","code":"our_data <- our_data %>% mutate(first = first_isolate(info = TRUE)) #> Determining first isolates using an episode length of 365 days #> ℹ Using column 'bacteria' as input for col_mo. #> ℹ Using column 'date' as input for col_date. #> ℹ Using column 'patient_id' as input for col_patient_id. #> Basing inclusion on all antimicrobial results, using a points threshold of #> 2 #> Including isolates from ICU. #> => Found 2,626 'phenotype-based' first isolates (87.6% within scope and #> 87.5% of total where a microbial ID was available) our_data_1st <- our_data %>% filter(first == TRUE) our_data_1st <- our_data %>% filter_first_isolate() our_data_1st #> # A tibble: 2,626 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S TRUE #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S TRUE #> 3 P10 A 2015-12-10 B_ESCHR_COLI S I S S TRUE #> 4 B7 A 2015-03-02 B_ESCHR_COLI S S S S TRUE #> 5 W3 A 2018-03-31 B_STPHY_AURS R S R S TRUE #> 6 J8 A 2016-06-14 B_ESCHR_COLI R S S S TRUE #> 7 M3 A 2015-10-25 B_ESCHR_COLI R S S S TRUE #> 8 J3 A 2019-06-19 B_ESCHR_COLI S S S S TRUE #> 9 G6 A 2015-04-27 B_STPHY_AURS S S S S TRUE #> 10 P4 A 2011-06-21 B_ESCHR_COLI S S S S TRUE #> # … with 2,616 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"How to conduct AMR data analysis","text":"base R summary() function gives good first impression, comes support new mo sir classes now data set:","code":"summary(our_data_1st) #> patient_id hospital date #> Length:2626 Length:2626 Min. :2011-01-01 #> Class :character Class :character 1st Qu.:2013-04-14 #> Mode :character Mode :character Median :2015-06-05 #> Mean :2015-06-15 #> 3rd Qu.:2017-08-23 #> Max. :2020-01-01 #> bacteria AMX AMC #> Class :mo Class:sir Class:sir #> :0 %R :43.2% (n=1134) %R :36.1% (n=947) #> Unique:4 %SI :56.8% (n=1492) %SI :63.9% (n=1679) #> #1 :B_ESCHR_COLI - %S :41.1% (n=1080) - %S :52.7% (n=1383) #> #2 :B_STPHY_AURS - %I :15.7% (n=412) - %I :11.3% (n=296) #> #3 :B_STRPT_PNMN #> CIP GEN first #> Class:sir Class:sir Mode:logical #> %R :42.0% (n=1102) %R :37.0% (n=971) TRUE:2626 #> %SI :58.0% (n=1524) %SI :63.0% (n=1655) #> - %S :51.9% (n=1362) - %S :59.9% (n=1574) #> - %I : 6.2% (n=162) - %I : 3.1% (n=81) #> glimpse(our_data_1st) #> Rows: 2,626 #> Columns: 9 #> $ patient_id \"J3\", \"R7\", \"P10\", \"B7\", \"W3\", \"J8\", \"M3\", \"J3\", \"G6\", \"P4\"… #> $ hospital \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date 2012-11-21, 2018-04-03, 2015-12-10, 2015-03-02, 2018-03-31… #> $ bacteria \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX R, R, S, S, R, R, R, S, S, S, S, R, S, S, R, R, R, R, I, S,… #> $ AMC I, I, I, S, S, S, S, S, S, S, S, S, S, S, S, S, S, R, S, R,… #> $ CIP S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN S, S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S,… #> $ first TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,… # number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id hospital date bacteria AMX AMC CIP #> 260 3 1808 4 3 3 3 #> GEN first #> 3 1"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"How to conduct AMR data analysis","text":"just get idea species distributed, create frequency table count() based name microorganisms:","code":"our_data %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1518 #> 2 Staphylococcus aureus 730 #> 3 Streptococcus pneumoniae 426 #> 4 Klebsiella pneumoniae 326 our_data_1st %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1250 #> 2 Staphylococcus aureus 661 #> 3 Streptococcus pneumoniae 399 #> 4 Klebsiella pneumoniae 316"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"select-and-filter-with-antibiotic-selectors","dir":"Articles","previous_headings":"Analysing the data","what":"Select and filter with antibiotic selectors","title":"How to conduct AMR data analysis","text":"Using -called antibiotic class selectors, can select filter columns based antibiotic class antibiotic results :","code":"our_data_1st %>% select(date, aminoglycosides()) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 2,626 × 2 #> date GEN #> #> 1 2012-11-21 S #> 2 2018-04-03 S #> 3 2015-12-10 S #> 4 2015-03-02 S #> 5 2018-03-31 S #> 6 2016-06-14 S #> 7 2015-10-25 S #> 8 2019-06-19 S #> 9 2015-04-27 S #> 10 2011-06-21 S #> # … with 2,616 more rows our_data_1st %>% select(bacteria, betalactams()) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 2,626 × 3 #> bacteria AMX AMC #> #> 1 B_ESCHR_COLI R I #> 2 B_KLBSL_PNMN R I #> 3 B_ESCHR_COLI S I #> 4 B_ESCHR_COLI S S #> 5 B_STPHY_AURS R S #> 6 B_ESCHR_COLI R S #> 7 B_ESCHR_COLI R S #> 8 B_ESCHR_COLI S S #> 9 B_STPHY_AURS S S #> 10 B_ESCHR_COLI S S #> # … with 2,616 more rows our_data_1st %>% select(bacteria, where(is.sir)) #> # A tibble: 2,626 × 5 #> bacteria AMX AMC CIP GEN #> #> 1 B_ESCHR_COLI R I S S #> 2 B_KLBSL_PNMN R I S S #> 3 B_ESCHR_COLI S I S S #> 4 B_ESCHR_COLI S S S S #> 5 B_STPHY_AURS R S R S #> 6 B_ESCHR_COLI R S S S #> 7 B_ESCHR_COLI R S S S #> 8 B_ESCHR_COLI S S S S #> 9 B_STPHY_AURS S S S S #> 10 B_ESCHR_COLI S S S S #> # … with 2,616 more rows # filtering using AB selectors is also possible: our_data_1st %>% filter(any(aminoglycosides() == \"R\")) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 971 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J5 A 2017-12-25 B_STRPT_PNMN R S S R TRUE #> 2 X1 A 2017-07-04 B_STPHY_AURS R S S R TRUE #> 3 B3 A 2016-07-24 B_ESCHR_COLI S S S R TRUE #> 4 V7 A 2012-04-03 B_ESCHR_COLI S S S R TRUE #> 5 C9 A 2017-03-23 B_ESCHR_COLI S S S R TRUE #> 6 R1 A 2018-06-10 B_STPHY_AURS S S S R TRUE #> 7 S2 A 2013-07-19 B_STRPT_PNMN S S S R TRUE #> 8 P5 A 2019-03-09 B_STPHY_AURS S S S R TRUE #> 9 Q8 A 2019-08-10 B_STPHY_AURS S S S R TRUE #> 10 K5 A 2013-03-15 B_STRPT_PNMN S S S R TRUE #> # … with 961 more rows our_data_1st %>% filter(all(betalactams() == \"R\")) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 471 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 6 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 7 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 8 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 9 C5 A 2015-08-30 B_KLBSL_PNMN R R S R TRUE #> 10 W9 A 2013-10-02 B_ESCHR_COLI R R S S TRUE #> # … with 461 more rows # even works in base R (since R 3.0): our_data_1st[all(betalactams() == \"R\"), ] #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 471 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 6 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 7 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 8 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 9 C5 A 2015-08-30 B_KLBSL_PNMN R R S R TRUE #> 10 W9 A 2013-10-02 B_ESCHR_COLI R R S S TRUE #> # … with 461 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"How to conduct AMR data analysis","text":"package comes antibiogram(), function automatically generates traditional, combined, syndromic, even weighted-incidence syndromic combination antibiograms (WISCA). R Markdown (page) automatically prints right table format. suggestions generate different antibiograms: Antibiograms can plotted using autoplot() ggplot2 packages, since package provides extension function: calculate antimicrobial resistance sensible way, also correcting results, use resistance() susceptibility() functions.","code":"# traditional: antibiogram(our_data_1st) antibiogram(our_data_1st, ab_transform = \"name\" ) antibiogram(our_data_1st, ab_transform = \"name\", language = \"es\" ) # support for 20 languages # combined: antibiogram(our_data_1st, antibiotics = c(\"AMC\", \"AMC+CIP\", \"AMC+GEN\") ) # for a syndromic antibiogram, we must fake some clinical conditions: our_data_1st$condition <- sample(c(\"Cardial\", \"Respiratory\", \"Rheumatic\"), size = nrow(our_data_1st), replace = TRUE ) # syndromic: antibiogram(our_data_1st, syndromic_group = \"condition\" ) antibiogram(our_data_1st, # you can use AB selectors here as well: antibiotics = c(penicillins(), aminoglycosides()), syndromic_group = \"condition\", mo_transform = \"gramstain\" ) #> ℹ For penicillins() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) # WISCA: # (we lack some details, but it could contain a filter on e.g. >65 year-old males) wisca <- antibiogram(our_data_1st, antibiotics = c(\"AMC\", \"AMC+CIP\", \"AMC+GEN\"), syndromic_group = \"condition\", mo_transform = \"gramstain\" ) wisca autoplot(wisca)"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"How to conduct AMR data analysis","text":"functions resistance() susceptibility() can used calculate antimicrobial resistance susceptibility. specific analyses, functions proportion_S(), proportion_SI(), proportion_I(), proportion_IR() proportion_R() can used determine proportion specific antimicrobial outcome. functions contain minimum argument, denoting minimum required number test results returning value. functions otherwise return NA. default minimum = 30, following CLSI M39-A4 guideline applying microbial epidemiology. per EUCAST guideline 2019, calculate resistance proportion R (proportion_R(), equal resistance()) susceptibility proportion S (proportion_SI(), equal susceptibility()). functions can used : can used conjunction group_by() summarise(), dplyr package: Author: Dr. Matthijs Berends, 26th Feb 2023","code":"our_data_1st %>% resistance(AMX) #> [1] 0.4318355 our_data_1st %>% group_by(hospital) %>% summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #> hospital amoxicillin #> #> 1 A 0.343 #> 2 B 0.569 #> 3 C 0.375"},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to apply EUCAST rules","text":"EUCAST rules? European Committee Antimicrobial Susceptibility Testing (EUCAST) states website: EUCAST expert rules tabulated collection expert knowledge intrinsic resistances, exceptional resistance phenotypes interpretive rules may applied antimicrobial susceptibility testing order reduce errors make appropriate recommendations reporting particular resistances. Europe, lot medical microbiological laboratories already apply rules (Brown et al., 2015). package features latest insights intrinsic resistance unusual phenotypes (v3.3, 2021). Moreover, eucast_rules() function use purpose can also apply additional rules, like forcing ampicillin = R isolates amoxicillin/clavulanic acid = R.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to apply EUCAST rules","text":"rules can used discard impossible bug-drug combinations data. example, Klebsiella produces beta-lactamase prevents ampicillin (amoxicillin) working . words, practically every strain Klebsiella resistant ampicillin. Sometimes, laboratory data can still contain strains ampicillin susceptible ampicillin. antibiogram available identification available, antibiogram re-interpreted based identification (namely, Klebsiella). EUCAST expert rules solve , can applied using eucast_rules(): convenient function mo_is_intrinsic_resistant() uses guideline, allows check one specific microorganisms antibiotics: EUCAST rules can used correction, can also used filling known resistance susceptibility based results antimicrobials drugs. process called interpretive reading, basically form imputation, part eucast_rules() function well:","code":"oops <- data.frame( mo = c( \"Klebsiella\", \"Escherichia\" ), ampicillin = \"S\" ) oops #> mo ampicillin #> 1 Klebsiella S #> 2 Escherichia S eucast_rules(oops, info = FALSE) #> mo ampicillin #> 1 Klebsiella R #> 2 Escherichia S mo_is_intrinsic_resistant( c(\"Klebsiella\", \"Escherichia\"), \"ampicillin\" ) #> [1] TRUE FALSE mo_is_intrinsic_resistant( \"Klebsiella\", c(\"ampicillin\", \"kanamycin\") ) #> [1] TRUE FALSE data <- data.frame( mo = c( \"Staphylococcus aureus\", \"Enterococcus faecalis\", \"Escherichia coli\", \"Klebsiella pneumoniae\", \"Pseudomonas aeruginosa\" ), VAN = \"-\", # Vancomycin AMX = \"-\", # Amoxicillin COL = \"-\", # Colistin CAZ = \"-\", # Ceftazidime CXM = \"-\", # Cefuroxime PEN = \"S\", # Benzylenicillin FOX = \"S\", # Cefoxitin stringsAsFactors = FALSE ) data eucast_rules(data)"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"type-of-input","dir":"Articles","previous_headings":"","what":"Type of input","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function takes data set input, regular data.frame. tries automatically determine right columns info isolates, name species columns results antimicrobial agents. See help page info set right settings data command ?mdro. WHONET data (data), settings automatically set correctly.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"guidelines","dir":"Articles","previous_headings":"","what":"Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function support multiple guidelines. can select guideline guideline parameter. Currently supported guidelines (case-insensitive): guideline = \"CMI2012\" (default) Magiorakos AP, Srinivasan et al. “Multidrug-resistant, extensively drug-resistant pandrug-resistant bacteria: international expert proposal interim standard definitions acquired resistance.” Clinical Microbiology Infection (2012) (link) guideline = \"EUCAST3.2\" (simply guideline = \"EUCAST\") European international guideline - EUCAST Expert Rules Version 3.2 “Intrinsic Resistance Unusual Phenotypes” (link) guideline = \"EUCAST3.1\" European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance Exceptional Phenotypes Tables” (link) guideline = \"TB\" international guideline multi-drug resistant tuberculosis - World Health Organization “Companion handbook guidelines programmatic management drug-resistant tuberculosis” (link) guideline = \"MRGN\" German national guideline - Mueller et al. (2015) Antimicrobial Resistance Infection Control 4:7. DOI: 10.1186/s13756-015-0047-6 guideline = \"BRMO\" Dutch national guideline - Rijksinstituut voor Volksgezondheid en Milieu “WIP-richtlijn BRMO (Bijzonder Resistente Micro-Organismen) (ZKH)” (link) Please suggest (country-specific) guidelines letting us know: https://github.com/msberends/AMR/issues/new.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"custom-guidelines","dir":"Articles","previous_headings":"Guidelines","what":"Custom Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"can also use custom guideline. Custom guidelines can set custom_mdro_guideline() function. great importance custom rules determine MDROs hospital, e.g., rules dependent ward, state contact isolation variables data. familiar case_when() dplyr package, recognise input method set rules. Rules must set using R considers ‘formula notation’: row/isolate matches first rule, value first ~ (case ‘Elderly Type ’) set MDRO value. Otherwise, second rule tried . maximum number rules unlimited. can print rules set console overview. Colours help reading console supports colours. outcome function can used guideline argument mdro() function: rules set (custom object case) exported shared file location using saveRDS() collaborate multiple users. custom rules set imported using readRDS().","code":"custom <- custom_mdro_guideline( CIP == \"R\" & age > 60 ~ \"Elderly Type A\", ERY == \"R\" & age > 60 ~ \"Elderly Type B\" ) custom #> A set of custom MDRO rules: #> 1. If CIP is \"R\" and age is higher than 60 then: Elderly Type A #> 2. If ERY is \"R\" and age is higher than 60 then: Elderly Type B #> 3. Otherwise: Negative #> #> Unmatched rows will return NA. #> Results will be of class 'factor', with ordered levels: Negative < Elderly Type A < Elderly Type B x <- mdro(example_isolates, guideline = custom) table(x) #> x #> Negative Elderly Type A Elderly Type B #> 1070 198 732"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function always returns ordered factor predefined guidelines. example, output default guideline Magiorakos et al. returns factor levels ‘Negative’, ‘MDR’, ‘XDR’ ‘PDR’ order. next example uses example_isolates data set. data set included package contains full antibiograms 2,000 microbial isolates. reflects reality can used practise AMR data analysis. test MDR/XDR/PDR guideline data set, get: (16 isolates test results) Frequency table Class: factor > ordered (numeric) Length: 2,000 Levels: 4: Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant … Available: 1,729 (86.45%, NA: 271 = 13.55%) Unique: 2 another example, create data set determine multi-drug resistant TB: column names automatically verified valid drug names codes, worked exactly way: data set now looks like : can now add interpretation MDR-TB data set. can use: shortcut mdr_tb(): Create frequency table results: Frequency table Class: factor > ordered (numeric) Length: 5,000 Levels: 5: Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant <… Available: 5,000 (100%, NA: 0 = 0%) Unique: 5","code":"library(dplyr) # to support pipes: %>% library(cleaner) # to create frequency tables example_isolates %>% mdro() %>% freq() # show frequency table of the result #> Warning: in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) # random_sir() is a helper function to generate # a random vector with values S, I and R my_TB_data <- data.frame( rifampicin = random_sir(5000), isoniazid = random_sir(5000), gatifloxacin = random_sir(5000), ethambutol = random_sir(5000), pyrazinamide = random_sir(5000), moxifloxacin = random_sir(5000), kanamycin = random_sir(5000) ) my_TB_data <- data.frame( RIF = random_sir(5000), INH = random_sir(5000), GAT = random_sir(5000), ETH = random_sir(5000), PZA = random_sir(5000), MFX = random_sir(5000), KAN = random_sir(5000) ) head(my_TB_data) #> rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin #> 1 R I S R I R #> 2 R R I S R R #> 3 R I I R R I #> 4 I S S R I R #> 5 R I I R R S #> 6 R R S I R S #> kanamycin #> 1 S #> 2 S #> 3 I #> 4 R #> 5 I #> 6 R mdro(my_TB_data, guideline = \"TB\") my_TB_data$mdr <- mdr_tb(my_TB_data) #> ℹ No column found as input for col_mo, assuming all rows contain #> Mycobacterium tuberculosis. freq(my_TB_data$mdr)"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"transforming","dir":"Articles","previous_headings":"","what":"Transforming","title":"How to conduct principal component analysis (PCA) for AMR","text":"PCA, need transform AMR data first. example_isolates data set package looks like: Now transform data set resistance percentages per taxonomic order genus:","code":"library(AMR) library(dplyr) glimpse(example_isolates) #> Rows: 2,000 #> Columns: 46 #> $ date 2002-01-02, 2002-01-03, 2002-01-07, 2002-01-07, 2002-01-13, 2… #> $ patient \"A77334\", \"A77334\", \"067927\", \"067927\", \"067927\", \"067927\", \"4… #> $ age 65, 65, 45, 45, 45, 45, 78, 78, 45, 79, 67, 67, 71, 71, 75, 50… #> $ gender \"F\", \"F\", \"F\", \"F\", \"F\", \"F\", \"M\", \"M\", \"F\", \"F\", \"M\", \"M\", \"M… #> $ ward \"Clinical\", \"Clinical\", \"ICU\", \"ICU\", \"ICU\", \"ICU\", \"Clinical\"… #> $ mo \"B_ESCHR_COLI\", \"B_ESCHR_COLI\", \"B_STPHY_EPDR\", \"B_STPHY_EPDR\",… #> $ PEN R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, S,… #> $ OXA NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ FLC NA, NA, R, R, R, R, S, S, R, S, S, S, NA, NA, NA, NA, NA, R, R… #> $ AMX NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ AMC I, I, NA, NA, NA, NA, S, S, NA, NA, S, S, I, I, R, I, I, NA, N… #> $ AMP NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ TZP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CZO NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ FEP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CXM I, I, R, R, R, R, S, S, R, S, S, S, S, S, NA, S, S, R, R, S, S… #> $ FOX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ CTX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ CAZ NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, S, S, R, R, … #> $ CRO NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ GEN NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TOB NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, S, S, NA, NA, NA… #> $ AMK NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ KAN NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TMP R, R, S, S, R, R, R, R, S, S, NA, NA, S, S, S, S, S, R, R, R, … #> $ SXT R, R, S, S, NA, NA, NA, NA, S, S, NA, NA, S, S, S, S, S, NA, N… #> $ NIT NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R,… #> $ FOS NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ LNZ R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ CIP NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, NA, S, S… #> $ MFX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ VAN R, R, S, S, S, S, S, S, S, S, NA, NA, R, R, R, R, R, S, S, S, … #> $ TEC R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ TCY R, R, S, S, S, S, S, S, S, I, S, S, NA, NA, I, R, R, S, I, R, … #> $ TGC NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ DOX NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ ERY R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ CLI R, R, NA, NA, NA, R, NA, NA, NA, NA, NA, NA, R, R, R, R, R, NA… #> $ AZM R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ IPM NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ MEM NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ MTR NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CHL NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ COL NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, R, R, R, R, … #> $ MUP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ RIF R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… resistance_data <- example_isolates %>% group_by( order = mo_order(mo), # group on anything, like order genus = mo_genus(mo) ) %>% # and genus as we do here summarise_if(is.sir, resistance) %>% # then get resistance of all drugs select( order, genus, AMC, CXM, CTX, CAZ, GEN, TOB, TMP, SXT ) # and select only relevant columns head(resistance_data) #> # A tibble: 6 × 10 #> # Groups: order [5] #> order genus AMC CXM CTX CAZ GEN TOB TMP SXT #> #> 1 (unknown order) (unknown ge… NA NA NA NA NA NA NA NA #> 2 Actinomycetales Schaalia NA NA NA NA NA NA NA NA #> 3 Bacteroidales Bacteroides NA NA NA NA NA NA NA NA #> 4 Campylobacterales Campylobact… NA NA NA NA NA NA NA NA #> 5 Caryophanales Gemella NA NA NA NA NA NA NA NA #> 6 Caryophanales Listeria NA NA NA NA NA NA NA NA"},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"perform-principal-component-analysis","dir":"Articles","previous_headings":"","what":"Perform principal component analysis","title":"How to conduct principal component analysis (PCA) for AMR","text":"new pca() function automatically filter rows contain numeric values selected variables, now need : result can reviewed good old summary() function: Good news. first two components explain total 93.3% variance (see PC1 PC2 values Proportion Variance. can create -called biplot base R biplot() function, see antimicrobial resistance per drug explain difference per microorganism.","code":"pca_result <- pca(resistance_data) #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #> \"TMP\", and \"TOB\". Total observations available: 7. summary(pca_result) #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\" \"Enterobacterales\" \"Lactobacillales\" \"Pseudomonadales\" #> Importance of components: #> PC1 PC2 PC3 PC4 PC5 PC6 PC7 #> Standard deviation 2.1539 1.6807 0.6138 0.33879 0.20808 0.03140 9.577e-17 #> Proportion of Variance 0.5799 0.3531 0.0471 0.01435 0.00541 0.00012 0.000e+00 #> Cumulative Proportion 0.5799 0.9330 0.9801 0.99446 0.99988 1.00000 1.000e+00 #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\" \"Enterobacterales\" \"Lactobacillales\" \"Pseudomonadales\""},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"plotting-the-results","dir":"Articles","previous_headings":"","what":"Plotting the results","title":"How to conduct principal component analysis (PCA) for AMR","text":"can’t see explanation points. Perhaps works better new ggplot_pca() function, automatically adds right labels even groups: can also print ellipse per group, edit appearance:","code":"biplot(pca_result) ggplot_pca(pca_result) ggplot_pca(pca_result, ellipse = TRUE) + ggplot2::labs(title = \"An AMR/PCA biplot!\")"},{"path":"https://msberends.github.io/AMR/articles/SPSS.html","id":"spss-sas-stata","dir":"Articles","previous_headings":"","what":"SPSS / SAS / Stata","title":"How to import data from SPSS / SAS / Stata","text":"SPSS (Statistical Package Social Sciences) probably well-known software package statistical analysis. SPSS easier learn R, SPSS click menu run parts analysis. user-friendliness, taught universities particularly useful students new statistics. experience, guess pretty much (bio)medical students know time graduate. SAS Stata comparable statistical packages popular big industries.","code":""},{"path":"https://msberends.github.io/AMR/articles/SPSS.html","id":"compared-to-r","dir":"Articles","previous_headings":"","what":"Compared to R","title":"How to import data from SPSS / SAS / Stata","text":"said, SPSS easier learn R. SPSS, SAS Stata come major downsides comparing R: R highly modular. official R network (CRAN) features 16,000 packages time writing, AMR package one . packages peer-reviewed publication. Aside official channel, also developers choose submit CRAN, rather keep public repository, like GitHub. may even lot 14,000 packages . Bottom line , can really extend ask somebody . Take example AMR package. Among things, adds reliable reference data R help data cleaning analysis. SPSS, SAS Stata never know valid MIC value Gram stain E. coli . species Klebiella resistant amoxicillin Floxapen® trade name flucloxacillin. facts properties often needed clean existing data, inconvenient software package without reliable reference data. See demonstration. R extremely flexible. write syntax , can anything want. flexibility transforming, arranging, grouping summarising data, drawing plots, endless - SPSS, SAS Stata bound algorithms format styles. may bit flexible, can probably never create specific publication-ready plot without using (paid) software. sometimes write syntaxes SPSS run complete analysis ‘automate’ work, lot less time R. notice writing syntaxes R lot nifty clever SPSS. Still, working statistical package, knowledge (statistically) willing accomplish. R can easily automated. last years, R Markdown really made interesting development. R Markdown, can easily produce reports, whether format Word, PowerPoint, website, PDF document just raw data Excel. even allows use reference file containing layout style (e.g. fonts colours) organisation. use lot generate weekly monthly reports automatically. Just write code enjoy automatically updated reports interval like. even professional environment, create Shiny apps: live manipulation data using custom made website. webdesign knowledge needed (JavaScript, CSS, HTML) almost zero. R huge community. Many R users just ask questions websites like StackOverflow.com, largest online community programmers. time writing, 483 254 R-related questions already asked platform (covers questions answers programming language). experience, questions answered within couple minutes. R understands data type, including SPSS/SAS/Stata. ’s vice versa ’m afraid. can import data source R. example SPSS, SAS Stata (link), Minitab, Epi Info EpiData (link), Excel (link), flat files like CSV, TXT TSV (link), directly databases datawarehouses anywhere world (link). can even scrape websites download tables live internet (link) get results API call transform data one command (link). best part - can export R data formats well. can import SPSS file, analysis neatly R export resulting tables Excel files sharing. R completely free open-source. strings attached. created maintained volunteers believe (data) science open publicly available everybody. SPSS, SAS Stata quite expensive. IBM SPSS Staticstics comes subscriptions nowadays, varying USD 1,300 USD 8,500 per user per year. SAS Analytics Pro costs around USD 10,000 per computer. Stata also business model subscription fees, varying USD 600 USD 2,800 per computer per year, lower prices come limitation number variables can work . still offer benefits R. working midsized small company, can save tens thousands dollars using R instead e.g. SPSS - gaining even functions flexibility. R enthousiasts can much PR want (like ), nobody officially associated affiliated R. really free. R (nowadays) preferred analysis software academic papers. present, R among world powerful statistical languages, generally popular science (Bollmann et al., 2017). reasons, number references R analysis method academic papers rising continuously even surpassed SPSS academic use (Muenchen, 2014). believe thing SPSS , always great user interface easy learn use. Back developed , little competition, let alone R. R didn’t even professional user interface last decade (called RStudio, see ). people used R nineties 2010 almost completely incomparable R used now. language restyled completely volunteers dedicated professionals field data science. SPSS great nothing else compete. now 2023, don’t see reason SPSS better use R. demonstrate first point:","code":"# not all values are valid MIC values: as.mic(0.125) #> Class 'mic' #> [1] 0.125 as.mic(\"testvalue\") #> Class 'mic' #> [1] # the Gram stain is available for all bacteria: mo_gramstain(\"E. coli\") #> [1] \"Gram-negative\" # Klebsiella is intrinsic resistant to amoxicillin, according to EUCAST: klebsiella_test <- data.frame( mo = \"klebsiella\", amox = \"S\", stringsAsFactors = FALSE ) klebsiella_test # (our original data) #> mo amox #> 1 klebsiella S eucast_rules(klebsiella_test, info = FALSE) # (the edited data by EUCAST rules) #> mo amox #> 1 klebsiella R # hundreds of trade names can be translated to a name, trade name or an ATC code: ab_name(\"floxapen\") #> [1] \"Flucloxacillin\" ab_tradenames(\"floxapen\") #> [1] \"culpen\" \"floxacillin\" \"floxacillin sodium\" #> [4] \"floxapen\" \"floxapen sodium salt\" \"fluclox\" #> [7] \"flucloxacilina\" \"flucloxacillin\" \"flucloxacilline\" #> [10] \"flucloxacillinum\" \"fluorochloroxacillin\" \"staphylex\" ab_atc(\"floxapen\") #> [1] \"J01CF05\""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/SPSS.html","id":"rstudio","dir":"Articles","previous_headings":"Import data from SPSS/SAS/Stata","what":"RStudio","title":"How to import data from SPSS / SAS / Stata","text":"work R, probably best option use RStudio. open-source free desktop environment allows run R code, also supports project management, version management, package management convenient import menus work data sources. can also install RStudio Server private corporate server, brings nothing less complete RStudio software website (home work). import data file, just click Import Dataset Environment tab: additional packages needed, RStudio ask installed beforehand. window opens, can define options (parameters) used import ’re ready go: want named variables imported factors resembles SPSS , use as_factor(). difference :","code":"SPSS_data # # A tibble: 4,203 x 4 # v001 sex status statusage # # 1 10002 1 1 76.6 # 2 10004 0 1 59.1 # 3 10005 1 1 54.5 # 4 10006 1 1 54.1 # 5 10007 1 1 57.7 # 6 10008 1 1 62.8 # 7 10010 0 1 63.7 # 8 10011 1 1 73.1 # 9 10017 1 1 56.7 # 10 10018 0 1 66.6 # # ... with 4,193 more rows as_factor(SPSS_data) # # A tibble: 4,203 x 4 # v001 sex status statusage # # 1 10002 Male alive 76.6 # 2 10004 Female alive 59.1 # 3 10005 Male alive 54.5 # 4 10006 Male alive 54.1 # 5 10007 Male alive 57.7 # 6 10008 Male alive 62.8 # 7 10010 Female alive 63.7 # 8 10011 Male alive 73.1 # 9 10017 Male alive 56.7 # 10 10018 Female alive 66.6 # # ... with 4,193 more rows"},{"path":"https://msberends.github.io/AMR/articles/SPSS.html","id":"base-r","dir":"Articles","previous_headings":"Import data from SPSS/SAS/Stata","what":"Base R","title":"How to import data from SPSS / SAS / Stata","text":"import data SPSS, SAS Stata, can use great haven package : can now import files follows:","code":"# download and install the latest version: install.packages(\"haven\") # load the package you just installed: library(haven)"},{"path":"https://msberends.github.io/AMR/articles/SPSS.html","id":"spss","dir":"Articles","previous_headings":"Import data from SPSS/SAS/Stata > Base R","what":"SPSS","title":"How to import data from SPSS / SAS / Stata","text":"read files SPSS R: forget as_factor(), mentioned . export R objects SPSS file format:","code":"# read any SPSS file based on file extension (best way): read_spss(file = \"path/to/file\") # read .sav or .zsav file: read_sav(file = \"path/to/file\") # read .por file: read_por(file = \"path/to/file\") # save as .sav file: write_sav(data = yourdata, path = \"path/to/file\") # save as compressed .zsav file: write_sav(data = yourdata, path = \"path/to/file\", compress = TRUE)"},{"path":"https://msberends.github.io/AMR/articles/SPSS.html","id":"sas","dir":"Articles","previous_headings":"Import data from SPSS/SAS/Stata > Base R","what":"SAS","title":"How to import data from SPSS / SAS / Stata","text":"read files SAS R: export R objects SAS file format:","code":"# read .sas7bdat + .sas7bcat files: read_sas(data_file = \"path/to/file\", catalog_file = NULL) # read SAS transport files (version 5 and version 8): read_xpt(file = \"path/to/file\") # save as regular SAS file: write_sas(data = yourdata, path = \"path/to/file\") # the SAS transport format is an open format # (required for submission of the data to the FDA) write_xpt(data = yourdata, path = \"path/to/file\", version = 8)"},{"path":"https://msberends.github.io/AMR/articles/SPSS.html","id":"stata","dir":"Articles","previous_headings":"Import data from SPSS/SAS/Stata > Base R","what":"Stata","title":"How to import data from SPSS / SAS / Stata","text":"read files Stata R: export R objects Stata file format:","code":"# read .dta file: read_stata(file = \"/path/to/file\") # works exactly the same: read_dta(file = \"/path/to/file\") # save as .dta file, Stata version 14: # (supports Stata v8 until v15 at the time of writing) write_dta(data = yourdata, path = \"/path/to/file\", version = 14)"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"import-of-data","dir":"Articles","previous_headings":"","what":"Import of data","title":"How to work with WHONET data","text":"tutorial assumes already imported WHONET data e.g. readxl package. RStudio, can done using menu button ‘Import Dataset’ tab ‘Environment’. Choose option ‘Excel’ select exported file. Make sure date fields imported correctly. example syntax look like : package comes example data set WHONET. use analysis.","code":"library(readxl) data <- read_excel(path = \"path/to/your/file.xlsx\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to work with WHONET data","text":"First, load relevant packages yet . use tidyverse analyses. . don’t know yet, suggest read website: https://www.tidyverse.org/. transform variables simplify automate analysis: Microorganisms transformed microorganism codes (called mo) using Catalogue Life reference data set, contains ~70,000 microorganisms taxonomic kingdoms Bacteria, Fungi Protozoa. tranformation .mo(). function also recognises almost WHONET abbreviations microorganisms. Antimicrobial results interpretations clean valid. words, contain values \"S\", \"\" \"R\". exactly .sir() function . errors warnings, values transformed succesfully. also created package dedicated data cleaning checking, called cleaner package. freq() function can used create frequency tables. let’s check data, couple frequency tables: Frequency table Class: character Length: 500 Available: 500 (100%, NA: 0 = 0%) Unique: 38 Shortest: 11 Longest: 40 (omitted 28 entries, n = 57 [11.4%]) Frequency table Class: factor > ordered > sir (numeric) Length: 500 Levels: 3: S < < R Available: 481 (96.2%, NA: 19 = 3.8%) Unique: 3 Drug: Amoxicillin/clavulanic acid (AMC, J01CR02) Drug group: Beta-lactams/penicillins %SI: 78.59%","code":"library(dplyr) # part of tidyverse library(ggplot2) # part of tidyverse library(AMR) # this package library(cleaner) # to create frequency tables # transform variables data <- WHONET %>% # get microbial ID based on given organism mutate(mo = as.mo(Organism)) %>% # transform everything from \"AMP_ND10\" to \"CIP_EE\" to the new `sir` class mutate_at(vars(AMP_ND10:CIP_EE), as.sir) # our newly created `mo` variable, put in the mo_name() function data %>% freq(mo_name(mo), nmax = 10) # our transformed antibiotic columns # amoxicillin/clavulanic acid (J01CR02) as an example data %>% freq(AMC_ND2)"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"a-first-glimpse-at-results","dir":"Articles","previous_headings":"","what":"A first glimpse at results","title":"How to work with WHONET data","text":"easy ggplot already give lot information, using included ggplot_sir() function:","code":"data %>% group_by(Country) %>% select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>% ggplot_sir(translate_ab = \"ab\", facet = \"Country\", datalabels = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-full-microbial-taxonomy","dir":"Articles","previous_headings":"","what":"microorganisms: Full Microbial Taxonomy","title":"Data sets for download / own use","text":"data set 52 142 rows 22 columns, containing following column names:mo, fullname, status, kingdom, phylum, class, order, family, genus, species, subspecies, rank, ref, source, lpsn, lpsn_parent, lpsn_renamed_to, gbif, gbif_parent, gbif_renamed_to, prevalence, snomed. data set R available microorganisms, load AMR package. last updated 26 February 2023 20:26:58 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (1.2 MB) Download tab-separated text file (11.3 MB) Download Microsoft Excel workbook (5 MB) Download Apache Feather file (5.4 MB) Download Apache Parquet file (2.6 MB) Download SAS data file (50.9 MB) Download IBM SPSS Statistics data file (16.9 MB) Download Stata DTA file (47.1 MB) NOTE: exported files SAS, SPSS Stata contain first 50 SNOMED codes per record, file size otherwise exceed 100 MB; file size limit GitHub. Advice? Use R instead. tab-separated text file Microsoft Excel workbook contain SNOMED codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Source","title":"Data sets for download / own use","text":"data set contains full microbial taxonomy five kingdoms List Prokaryotic names Standing Nomenclature (LPSN) Global Biodiversity Information Facility (GBIF): Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; . Accessed https://lpsn.dsmz.de 11 December, 2022. GBIF Secretariat (2022). GBIF Backbone Taxonomy. Checklist dataset . Accessed https://www.gbif.org 11 December, 2022. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name ‘Microoganism’, OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Example content","title":"Data sets for download / own use","text":"Included (sub)species per taxonomic kingdom: Example rows filtering genus Escherichia:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antibiotics-antibiotic-antifungal-drugs","dir":"Articles","previous_headings":"","what":"antibiotics: Antibiotic (+Antifungal) Drugs","title":"Data sets for download / own use","text":"data set 483 rows 14 columns, containing following column names:ab, cid, name, group, atc, atc_group1, atc_group2, abbreviations, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antibiotics, load AMR package. last updated 22 February 2023 13:38:57 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (39 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (66 kB) Download Apache Feather file (0.1 MB) Download Apache Parquet file (97 kB) Download SAS data file (1.9 MB) Download IBM SPSS Statistics data file (0.3 MB) Download Stata DTA file (0.4 MB) tab-separated text file Microsoft Excel workbook, SAS, SPSS Stata files contain ATC codes, common abbreviations, trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-1","dir":"Articles","previous_headings":"antibiotics: Antibiotic (+Antifungal) Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains EARS-Net ATC codes gathered WHONET, compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine WHONET software 2019 LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antivirals-antiviral-drugs","dir":"Articles","previous_headings":"","what":"antivirals: Antiviral Drugs","title":"Data sets for download / own use","text":"data set 120 rows 11 columns, containing following column names:av, name, atc, cid, atc_group, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antivirals, load AMR package. last updated 13 November 2022 07:46:10 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (5 kB) Download tab-separated text file (16 kB) Download Microsoft Excel workbook (16 kB) Download Apache Feather file (15 kB) Download Apache Parquet file (13 kB) Download SAS data file (84 kB) Download IBM SPSS Statistics data file (30 kB) Download Stata DTA file (73 kB) tab-separated text file Microsoft Excel workbook, SAS, SPSS Stata files contain trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-2","dir":"Articles","previous_headings":"antivirals: Antiviral Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains ATC codes gathered compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"clinical_breakpoints-interpretation-from-mic-values-disk-diameters-to-sir","dir":"Articles","previous_headings":"","what":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","title":"Data sets for download / own use","text":"data set 18 308 rows 11 columns, containing following column names:guideline, method, site, mo, rank_index, ab, ref_tbl, disk_dose, breakpoint_S, breakpoint_R, uti. data set R available clinical_breakpoints, load AMR package. last updated 21 January 2023 22:47:20 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (42 kB) Download tab-separated text file (1.9 MB) Download Microsoft Excel workbook (0.8 MB) Download Apache Feather file (0.7 MB) Download Apache Parquet file (87 kB) Download SAS data file (3.6 MB) Download IBM SPSS Statistics data file (2.3 MB) Download Stata DTA file (3.4 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-3","dir":"Articles","previous_headings":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","what":"Source","title":"Data sets for download / own use","text":"data set contains interpretation rules MIC values disk diffusion diameters. Included guidelines CLSI (2013-2022) EUCAST (2013-2022).","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"intrinsic_resistant-intrinsic-bacterial-resistance","dir":"Articles","previous_headings":"","what":"intrinsic_resistant: Intrinsic Bacterial Resistance","title":"Data sets for download / own use","text":"data set 134 634 rows 2 columns, containing following column names:mo ab. data set R available intrinsic_resistant, load AMR package. last updated 16 December 2022 15:10:43 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (78 kB) Download tab-separated text file (5.1 MB) Download Microsoft Excel workbook (1.3 MB) Download Apache Feather file (1.2 MB) Download Apache Parquet file (0.2 MB) Download SAS data file (9.8 MB) Download IBM SPSS Statistics data file (7.4 MB) Download Stata DTA file (9.5 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Source","title":"Data sets for download / own use","text":"data set contains defined intrinsic resistance EUCAST bug-drug combinations, based ‘EUCAST Expert Rules’ ‘EUCAST Intrinsic Resistance Unusual Phenotypes’ v3.3 (2021).","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Example content","title":"Data sets for download / own use","text":"Example rows filtering Enterobacter cloacae:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"dosage-dosage-guidelines-from-eucast","dir":"Articles","previous_headings":"","what":"dosage: Dosage Guidelines from EUCAST","title":"Data sets for download / own use","text":"data set 336 rows 9 columns, containing following column names:ab, name, type, dose, dose_times, administration, notes, original_txt, eucast_version. data set R available dosage, load AMR package. last updated 14 November 2022 14:20:39 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (3 kB) Download tab-separated text file (29 kB) Download Microsoft Excel workbook (19 kB) Download Apache Feather file (16 kB) Download Apache Parquet file (8 kB) Download SAS data file (92 kB) Download IBM SPSS Statistics data file (43 kB) Download Stata DTA file (82 kB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-5","dir":"Articles","previous_headings":"dosage: Dosage Guidelines from EUCAST","what":"Source","title":"Data sets for download / own use","text":"EUCAST breakpoints used package based dosages data set. Currently included dosages data set meant : ‘EUCAST Clinical Breakpoint Tables’ v11.0 (2021) ‘EUCAST Clinical Breakpoint Tables’ v12.0 (2022).","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates: Example Data for Practice","title":"Data sets for download / own use","text":"data set 2 000 rows 46 columns, containing following column names:date, patient, age, gender, ward, mo, PEN, OXA, FLC, AMX, AMC, AMP, TZP, CZO, FEP, CXM, FOX, CTX, CAZ, CRO, GEN, TOB, AMK, KAN, TMP, SXT, NIT, FOS, LNZ, CIP, MFX, VAN, TEC, TCY, TGC, DOX, ERY, CLI, AZM, IPM, MEM, MTR, CHL, COL, MUP, RIF. data set R available example_isolates, load AMR package. last updated 21 January 2023 22:47:20 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-6","dir":"Articles","previous_headings":"example_isolates: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates_unclean-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates_unclean: Example Data for Practice","title":"Data sets for download / own use","text":"data set 3 000 rows 8 columns, containing following column names:patient_id, hospital, date, bacteria, AMX, AMC, CIP, GEN. data set R available example_isolates_unclean, load AMR package. last updated 27 August 2022 18:49:37 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-7","dir":"Articles","previous_headings":"example_isolates_unclean: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"needed-r-packages","dir":"Articles","previous_headings":"","what":"Needed R packages","title":"How to predict antimicrobial resistance","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. AMR package depends packages even extends use functions.","code":"library(dplyr) library(ggplot2) library(AMR) # (if not yet installed, install with:) # install.packages(c(\"tidyverse\", \"AMR\"))"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"prediction-analysis","dir":"Articles","previous_headings":"","what":"Prediction analysis","title":"How to predict antimicrobial resistance","text":"package contains function resistance_predict(), takes input functions AMR data analysis. Based date column, calculates cases per year uses regression model predict antimicrobial resistance. basically easy : function look date column col_date set. running commands, summary regression model printed unless using resistance_predict(..., info = FALSE). text printed summary - actual result (output) function data.frame containing year: number observations, actual observed resistance, estimated resistance standard error estimation: function plot available base R, can extended packages depend output based type input. extended function cope resistance predictions: fastest way plot result. automatically adds right axes, error bars, titles, number available observations type model. also support ggplot2 package custom function ggplot_sir_predict() create appealing plots:","code":"# resistance prediction of piperacillin/tazobactam (TZP): resistance_predict(tbl = example_isolates, col_date = \"date\", col_ab = \"TZP\", model = \"binomial\") # or: example_isolates %>% resistance_predict( col_ab = \"TZP\", model = \"binomial\" ) # to bind it to object 'predict_TZP' for example: predict_TZP <- example_isolates %>% resistance_predict( col_ab = \"TZP\", model = \"binomial\" ) predict_TZP #> # A tibble: 32 × 7 #> year value se_min se_max observations observed estimated #> * #> 1 2002 0.2 NA NA 15 0.2 0.0562 #> 2 2003 0.0625 NA NA 32 0.0625 0.0616 #> 3 2004 0.0854 NA NA 82 0.0854 0.0676 #> 4 2005 0.05 NA NA 60 0.05 0.0741 #> 5 2006 0.0508 NA NA 59 0.0508 0.0812 #> 6 2007 0.121 NA NA 66 0.121 0.0889 #> 7 2008 0.0417 NA NA 72 0.0417 0.0972 #> 8 2009 0.0164 NA NA 61 0.0164 0.106 #> 9 2010 0.0566 NA NA 53 0.0566 0.116 #> 10 2011 0.183 NA NA 93 0.183 0.127 #> # … with 22 more rows plot(predict_TZP) ggplot_sir_predict(predict_TZP) # choose for error bars instead of a ribbon ggplot_sir_predict(predict_TZP, ribbon = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"choosing-the-right-model","dir":"Articles","previous_headings":"Prediction analysis","what":"Choosing the right model","title":"How to predict antimicrobial resistance","text":"Resistance easily predicted; look vancomycin resistance Gram-positive bacteria, spread (.e. standard error) enormous: Vancomycin resistance 100% ten years, might remain low. can define model model parameter. model chosen generalised linear regression model using binomial distribution, assuming period zero resistance followed period increasing resistance leading slowly resistance. Valid values : vancomycin resistance Gram-positive bacteria, linear model might appropriate: model also available object, attribute:","code":"example_isolates %>% filter(mo_gramstain(mo, language = NULL) == \"Gram-positive\") %>% resistance_predict(col_ab = \"VAN\", year_min = 2010, info = FALSE, model = \"binomial\") %>% ggplot_sir_predict() example_isolates %>% filter(mo_gramstain(mo, language = NULL) == \"Gram-positive\") %>% resistance_predict(col_ab = \"VAN\", year_min = 2010, info = FALSE, model = \"linear\") %>% ggplot_sir_predict() model <- attributes(predict_TZP)$model summary(model)$family #> #> Family: binomial #> Link function: logit summary(model)$coefficients #> Estimate Std. Error z value Pr(>|z|) #> (Intercept) -200.67944891 46.17315349 -4.346237 1.384932e-05 #> year 0.09883005 0.02295317 4.305725 1.664395e-05"},{"path":"https://msberends.github.io/AMR/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Matthijs S. Berends. Author, maintainer. Christian F. Luz. Author, contributor. Dennis Souverein. Author, contributor. Erwin E. . Hassing. Author, contributor. Casper J. Albers. Thesis advisor. Peter Dutey-Magni. Contributor. Judith M. Fonville. Contributor. Alex W. Friedrich. Thesis advisor. Corinna Glasner. Thesis advisor. Eric H. L. C. M. Hazenberg. Contributor. Gwen Knight. Contributor. Annick Lenglet. Contributor. Bart C. Meijer. Contributor. Dmytro Mykhailenko. Contributor. Anton Mymrikov. Contributor. Andrew P. Norgan. Contributor. Sofia Ny. Contributor. Jonas Salm. Contributor. Rogier P. Schade. Contributor. Bhanu N. M. Sinha. Thesis advisor. Anthony Underwood. Contributor. Anita Williams. Contributor.","code":""},{"path":"https://msberends.github.io/AMR/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). “AMR: R Package Working Antimicrobial Resistance Data.” Journal Statistical Software, 104(3), 1–31. doi:10.18637/jss.v104.i03.","code":"@Article{, title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data}, author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner}, journal = {Journal of Statistical Software}, year = {2022}, volume = {104}, number = {3}, pages = {1--31}, doi = {10.18637/jss.v104.i03}, }"},{"path":"https://msberends.github.io/AMR/index.html","id":"the-amr-package-for-r-","dir":"","previous_headings":"","what":"Antimicrobial Resistance Data Analysis","title":"Antimicrobial Resistance Data Analysis","text":"Generates antibiograms - traditional, combined, syndromic, even WISCA Provides full microbiological taxonomy data antimicrobial drugs Applies recent CLSI EUCAST clinical breakpoints MICs disk zones Corrects duplicate isolates, calculates predicts AMR per antibiotic class Integrates WHONET, ATC, EARS-Net, PubChem, LOINC SNOMED CT Works Windows, macOS Linux versions R since R-3.0 completely dependency-free, highly suitable places limited resources https://msberends.github.io/AMR https://doi.org/10.18637/jss.v104.i03","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"introduction","dir":"","previous_headings":"","what":"Introduction","title":"Antimicrobial Resistance Data Analysis","text":"AMR package free open-source R package zero dependencies simplify analysis prediction Antimicrobial Resistance (AMR) work microbial antimicrobial data properties, using evidence-based methods. aim provide standard clean reproducible AMR data analysis, can therefore empower epidemiological analyses continuously enable surveillance treatment evaluation setting. Many different researchers around globe continually helping us make successful durable project! work published Journal Statistical Software (Volume 104(3); DOI 10.18637/jss.v104.i03) formed basis two PhD theses (DOI 10.33612/diss.177417131 DOI 10.33612/diss.192486375). installing package, R knows ~52,000 distinct microbial species (updated December 2022) ~600 antibiotic, antimycotic antiviral drugs name code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC SNOMED CT), knows valid SIR MIC values. integral breakpoint guidelines CLSI EUCAST included last 10 years. supports can read data format, including WHONET data. package works Windows, macOS Linux versions R since R-3.0 (April 2013). designed work setting, including limited resources. created routine data analysis academic research Faculty Medical Sciences University Groningen, collaboration non-profit organisations Certe Medical Diagnostics Advice Foundation University Medical Center Groningen.","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"used-in-over-175-countries-translated-into-20-languages","dir":"","previous_headings":"Introduction","what":"Used in over 175 countries, translated into 20 languages","title":"Antimicrobial Resistance Data Analysis","text":"Since first public release early 2018, R package used almost countries world. Click map enlarge see country names. help contributors corners world, AMR package available English, Czech, Chinese, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. Antimicrobial drug (group) names colloquial microorganism names provided languages.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/index.html","id":"filtering-and-selecting-data","dir":"","previous_headings":"Practical examples","what":"Filtering and selecting data","title":"Antimicrobial Resistance Data Analysis","text":"One powerful functions package, aside calculating plotting AMR, selecting filtering based antibiotic columns. can done using -called antibiotic class selectors work base R, dplyr data.table: defined row filter Gram-negative bacteria intrinsic resistance cefotaxime (mo_is_gram_negative() mo_is_intrinsic_resistant()) column selection two antibiotic groups (aminoglycosides() carbapenems()), reference data microorganisms antibiotics AMR package make sure get meant: base R equivalent : base R code work version R since April 2013 (R-3.0). Moreover, code works identically data.table package, starting :","code":"# AMR works great with dplyr, but it's not required or neccesary library(AMR) library(dplyr) example_isolates %>% mutate(bacteria = mo_fullname()) %>% # filtering functions for microorganisms: filter(mo_is_gram_negative(), mo_is_intrinsic_resistant(ab = \"cefotax\")) %>% # antibiotic selectors: select(bacteria, aminoglycosides(), carbapenems()) library(AMR) example_isolates$bacteria <- mo_fullname(example_isolates$mo) example_isolates[which(mo_is_gram_negative() & mo_is_intrinsic_resistant(ab = \"cefotax\")), c(\"bacteria\", aminoglycosides(), carbapenems())] example_isolates <- data.table::as.data.table(example_isolates)"},{"path":"https://msberends.github.io/AMR/index.html","id":"generating-antibiograms","dir":"","previous_headings":"Practical examples","what":"Generating antibiograms","title":"Antimicrobial Resistance Data Analysis","text":"AMR package supports generating traditional, combined, syndromic, even weighted-incidence syndromic combination antibiograms (WISCA). used inside R Markdown Quarto, table printed right output format automatically (markdown, LaTeX, HTML, etc.). combination antibiograms, clear combined antibiotics yield higher empiric coverage: Like many functions package, antibiogram() comes support 20 languages often detected automatically based system language:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems())) antibiogram(example_isolates, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), mo_transform = \"gramstain\") antibiogram(example_isolates, antibiotics = c(\"cipro\", \"tobra\", \"genta\"), # any arbitrary name or code will work mo_transform = \"gramstain\", ab_transform = \"name\", language = \"uk\") # Ukrainian"},{"path":"https://msberends.github.io/AMR/index.html","id":"calculating-resistance-per-group","dir":"","previous_headings":"Practical examples","what":"Calculating resistance per group","title":"Antimicrobial Resistance Data Analysis","text":"manual approach, can use resistance susceptibility() function: use antibiotic class selectors select series antibiotic columns:","code":"example_isolates %>% # group by ward: group_by(ward) %>% # calculate AMR using resistance() for gentamicin and tobramycin # and get their 95% confidence intervals using sir_confidence_interval(): summarise(across(c(GEN, TOB), list(total_R = resistance, conf_int = function(x) sir_confidence_interval(x, collapse = \"-\")))) library(AMR) library(dplyr) out <- example_isolates %>% # group by ward: group_by(ward) %>% # calculate AMR using resistance(), over all aminoglycosides and polymyxins: summarise(across(c(aminoglycosides(), polymyxins()), resistance)) out # transform the antibiotic columns to names: out %>% set_ab_names() # transform the antibiotic column to ATC codes: out %>% set_ab_names(property = \"atc\")"},{"path":"https://msberends.github.io/AMR/index.html","id":"what-else-can-you-do-with-this-package","dir":"","previous_headings":"","what":"What else can you do with this package?","title":"Antimicrobial Resistance Data Analysis","text":"package intended comprehensive toolbox integrated AMR data analysis. package can used : Reference taxonomy microorganisms, since package contains microbial (sub)species List Prokaryotic names Standing Nomenclature (LPSN) Global Biodiversity Information Facility (GBIF) (manual) Interpreting raw MIC disk diffusion values, based CLSI EUCAST guideline last 10 years (manual) Retrieving antimicrobial drug names, doses forms administration clinical health care records (manual) Determining first isolates used AMR data analysis (manual) Calculating antimicrobial resistance (tutorial) Determining multi-drug resistance (MDR) / multi-drug resistant organisms (MDRO) (tutorial) Calculating (empirical) susceptibility mono therapy combination therapies (tutorial) Predicting future antimicrobial resistance using regression models (tutorial) Getting properties microorganism (like Gram stain, species, genus family) (manual) Getting properties antibiotic (like name, code EARS-Net/ATC/LOINC/PubChem, defined daily dose trade name) (manual) Plotting antimicrobial resistance (tutorial) Applying EUCAST expert rules (manual) Getting SNOMED codes microorganism, getting properties microorganism based SNOMED code (manual) Getting LOINC codes antibiotic, getting properties antibiotic based LOINC code (manual) Machine reading EUCAST CLSI guidelines 2011-2021 translate MIC values disk diffusion diameters SIR (link) Principal component analysis AMR (tutorial)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/index.html","id":"latest-official-version","dir":"","previous_headings":"Get this package","what":"Latest official version","title":"Antimicrobial Resistance Data Analysis","text":"package available official R network (CRAN). Install package R CRAN using command: downloaded installed automatically. RStudio, click menu Tools > Install Packages… type “AMR” press Install. Note: functions website may available latest release. use functions data sets mentioned website, install latest development version.","code":"install.packages(\"AMR\")"},{"path":"https://msberends.github.io/AMR/index.html","id":"latest-development-version","dir":"","previous_headings":"Get this package","what":"Latest development version","title":"Antimicrobial Resistance Data Analysis","text":"Please read Developer Guideline . latest unpublished development version can installed GitHub two ways: Manually, using: Automatically, using rOpenSci R-universe platform, adding R-universe address list repositories (‘repos’): , can install update AMR package like official release (e.g., using install.packages(\"AMR\") RStudio via Tools > Check Package Updates…).","code":"install.packages(\"remotes\") # if you haven't already remotes::install_github(\"msberends/AMR\") options(repos = c(getOption(\"repos\"), msberends = \"https://msberends.r-universe.dev\"))"},{"path":"https://msberends.github.io/AMR/index.html","id":"get-started","dir":"","previous_headings":"","what":"Get started","title":"Antimicrobial Resistance Data Analysis","text":"find conduct AMR data analysis, please continue reading get started click link ‘’ menu.","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"partners","dir":"","previous_headings":"","what":"Partners","title":"Antimicrobial Resistance Data Analysis","text":"development package part , related , made possible following non-profit organisations initiatives:","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"copyright","dir":"","previous_headings":"","what":"Copyright","title":"Antimicrobial Resistance Data Analysis","text":"R package free, open-source software licensed GNU General Public License v2.0 (GPL-2). nutshell, means package: May used commercial purposes May used private purposes May used patent purposes May modified, although: Modifications must released license distributing package Changes made code must documented May distributed, although: Source code must made available package distributed copy license copyright notice must included package. Comes LIMITATION liability Comes warranty","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"Deprecated Functions — AMR-deprecated","title":"Deprecated Functions — AMR-deprecated","text":"functions -called 'Deprecated'. removed future release. Using functions give warning name function replaced (one).","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deprecated Functions — AMR-deprecated","text":"","code":"NA_rsi_ as.rsi(x, ...) facet_rsi(...) geom_rsi(...) ggplot_rsi(...) ggplot_rsi_predict(...) is.rsi(...) is.rsi.eligible(...) labels_rsi_count(...) n_rsi(...) random_rsi(...) rsi_df(...) rsi_predict(...) scale_rsi_colours(...) theme_rsi(...)"},{"path":"https://msberends.github.io/AMR/reference/AMR-deprecated.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Deprecated Functions — AMR-deprecated","text":"object class rsi (inherits ordered, factor) length 1.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":null,"dir":"Reference","previous_headings":"","what":"Options for the AMR package — AMR-options","title":"Options for the AMR package — AMR-options","text":"overview package-specific options() can set AMR package.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"options","dir":"Reference","previous_headings":"","what":"Options","title":"Options for the AMR package — AMR-options","text":"AMR_custom_ab Allows use custom antimicrobial drugs package. explained add_custom_antimicrobials(). AMR_custom_mo Allows use custom microorganisms package. explained add_custom_microorganisms(). AMR_eucastrules Used setting default types rules eucast_rules() function, must one : \"breakpoints\", \"expert\", \"\", \"custom\", \"\", defaults c(\"breakpoints\", \"expert\"). AMR_guideline Used setting default guideline interpreting MIC values disk diffusion diameters .sir(). Can guideline name (e.g., \"CLSI\") name year (e.g. \"CLSI 2019\"). default latest implemented EUCAST guideline, currently \"EUCAST 2022\". Supported guideline currently EUCAST (2013-2022) CLSI (2013-2022). AMR_ignore_pattern regular expression ignore (.e., make NA) match given .mo() mo_* functions. AMR_include_PKPD logical use .sir(), indicate PK/PD clinical breakpoints must applied last resort - default TRUE. AMR_include_screening logical use .sir(), indicate clinical breakpoints screening allowed - default FALSE. AMR_keep_synonyms logical use .mo() mo_* functions, indicate old, previously valid taxonomic names must preserved corrected currently accepted names. default FALSE. AMR_cleaning_regex regular expression (case-insensitive) use .mo() mo_* functions, clean user input. default outcome mo_cleaning_regex(), removes texts brackets texts \"species\" \"serovar\". AMR_locale language use AMR package, can one supported language names ISO-639-1 codes: English (en), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Italian (), Japanese (ja), Norwegian (), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Turkish (tr), Ukrainian (uk). default current system language (supported). AMR_mo_source file location manual code list used .mo() mo_* functions. explained set_mo_source().","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"saving-settings-between-sessions","dir":"Reference","previous_headings":"","what":"Saving Settings Between Sessions","title":"Options for the AMR package — AMR-options","text":"Settings R saved globally thus lost R exited. can save options .Rprofile file, user-specific file. can edit using: file, can set options : add Portuguese language support antibiotics, allow PK/PD rules interpreting MIC values .sir().","code":"utils::file.edit(\"~/.Rprofile\") options(AMR_locale = \"pt\") options(AMR_include_PKPD = TRUE)"},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"share-options-within-team","dir":"Reference","previous_headings":"","what":"Share Options Within Team","title":"Options for the AMR package — AMR-options","text":"global approach, e.g. within data team, save options file remote file location, shared network drive. work way: Save plain text file e.g. \"X:/team_folder/R_options.R\" fill preferred settings. user, open .Rprofile file using utils::file.edit(\"~/.Rprofile\") put : Reload R/RStudio check settings getOption(), e.g. getOption(\"AMR_locale\") set value. Now team settings configured one place, can maintained .","code":"source(\"X:/team_folder/R_options.R\")"},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":null,"dir":"Reference","previous_headings":"","what":"The AMR Package — AMR","title":"The AMR Package — AMR","text":"Welcome AMR package. AMR package free open-source R package zero dependencies simplify analysis prediction Antimicrobial Resistance (AMR) work microbial antimicrobial data properties, using evidence-based methods. aim provide standard clean reproducible AMR data analysis, can therefore empower epidemiological analyses continuously enable surveillance treatment evaluation setting. Many different researchers around globe continually helping us make successful durable project! work published Journal Statistical Software (Volume 104(3); DOI 10.18637/jss.v104.i03) formed basis two PhD theses (DOI 10.33612/diss.177417131 DOI 10.33612/diss.192486375). installing package, R knows ~52 000 (updated December 2022) ~600 antibiotic, antimycotic antiviral drugs name code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC SNOMED CT), knows valid SIR MIC values. integral breakpoint guidelines CLSI EUCAST included last 10 years. supports can read data format, including WHONET data. package works Windows, macOS Linux versions R since R-3.0 (April 2013). designed work setting, including limited resources. created routine data analysis academic research Faculty Medical Sciences University Groningen, collaboration non-profit organisations Certe Medical Diagnostics Advice Foundation University Medical Center Groningen. AMR package available English, Chinese, Danish, Dutch, French, German, Greek, Italian, Japanese, Polish, Portuguese, Russian, Spanish, Swedish, Turkish Ukrainian. Antimicrobial drug (group) names colloquial microorganism names provided languages.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"The AMR Package — AMR","text":"cite AMR publications use: Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). \"AMR: R Package Working Antimicrobial Resistance Data.\" Journal Statistical Software, 104(3), 1-31. doi:10.18637/jss.v104.i03 . BibTeX entry LaTeX users :","code":"@Article{, title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data}, author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner}, journal = {Journal of Statistical Software}, year = {2022}, volume = {104}, number = {3}, pages = {1--31}, doi = {10.18637/jss.v104.i03}, }"},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"The AMR Package — AMR","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The AMR Package — AMR","text":"Maintainer: Matthijs S. Berends m.berends@certe.nl (ORCID) Authors: Christian F. Luz (ORCID) [contributor] Dennis Souverein (ORCID) [contributor] Erwin E. . Hassing [contributor] contributors: Casper J. Albers (ORCID) [thesis advisor] Peter Dutey-Magni (ORCID) [contributor] Judith M. Fonville [contributor] Alex W. Friedrich (ORCID) [thesis advisor] Corinna Glasner (ORCID) [thesis advisor] Eric H. L. C. M. Hazenberg [contributor] Gwen Knight (ORCID) [contributor] Annick Lenglet (ORCID) [contributor] Bart C. Meijer [contributor] Dmytro Mykhailenko [contributor] Anton Mymrikov [contributor] Andrew P. Norgan (ORCID) [contributor] Sofia Ny (ORCID) [contributor] Jonas Salm [contributor] Rogier P. Schade [contributor] Bhanu N. M. Sinha (ORCID) [thesis advisor] Anthony Underwood (ORCID) [contributor] Anita Williams (ORCID) [contributor]","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":null,"dir":"Reference","previous_headings":"","what":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"antimicrobial drugs official names, ATC codes, ATC groups defined daily dose (DDD) included package, using Collaborating Centre Drug Statistics Methodology.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://www.whocc.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://www.whocc./copyright_disclaimer/.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"","code":"as.ab(\"meropenem\") #> Class 'ab' #> [1] MEM ab_name(\"J01DH02\") #> [1] \"Meropenem\" ab_tradenames(\"flucloxacillin\") #> [1] \"culpen\" \"floxacillin\" \"floxacillin sodium\" #> [4] \"floxapen\" \"floxapen sodium salt\" \"fluclox\" #> [7] \"flucloxacilina\" \"flucloxacillin\" \"flucloxacilline\" #> [10] \"flucloxacillinum\" \"fluorochloroxacillin\" \"staphylex\""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 500 Isolates - WHONET Example — WHONET","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"example data set exact structure export file WHONET. files can used package, example data set shows. antibiotic results example_isolates data set. patient names created using online surname generators place practice purposes.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"","code":"WHONET"},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"tibble 500 observations 53 variables: Identification number ID sample Specimen number ID specimen Organism Name microorganism. analysis, transform valid microbial class, using .mo(). Country Country origin Laboratory Name laboratory Last name Fictitious last name patient First name Fictitious initial patient Sex Fictitious gender patient Age Fictitious age patient Age category Age group, can also looked using age_groups() Date admissionDate hospital admission Specimen dateDate specimen received laboratory Specimen type Specimen type group Specimen type (Numeric) Translation \"Specimen type\" Reason Reason request Differential Diagnosis Isolate number ID isolate Organism type Type microorganism, can also looked using mo_type() Serotype Serotype microorganism Beta-lactamase Microorganism produces beta-lactamase? ESBL Microorganism produces extended spectrum beta-lactamase? Carbapenemase Microorganism produces carbapenemase? MRSA screening test Microorganism possible MRSA? Inducible clindamycin resistance Clindamycin can induced? Comment comments Date data entryDate data entered WHONET AMP_ND10:CIP_EE 28 different antibiotics. can lookup abbreviations antibiotics data set, use e.g. ab_name(\"AMP\") get official name immediately. analysis, transform valid antibiotic class, using .sir().","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"","code":"WHONET #> # A tibble: 500 × 53 #> Identif…¹ Speci…² Organ…³ Country Labor…⁴ Last …⁵ First…⁶ Sex Age Age c…⁷ #> #> 1 fe41d7ba… 1748 SPN Belgium Nation… Abel B. F 68 55-74 #> 2 91f175ec… 1767 eco The Ne… Nation… Delacr… F. M 89 75+ #> 3 cc401505… 1343 eco The Ne… Nation… Steens… F. M 85 75+ #> 4 e864b692… 1894 MAP Denmark Nation… Beyers… L. M 62 55-74 #> 5 3d051fe3… 1739 PVU Belgium Nation… Hummel W. M 86 75+ #> 6 c80762a0… 1846 103 The Ne… Nation… Eikenb… J. F 53 25-54 #> 7 8022d372… 1628 103 Denmark Nation… Leclerc S. F 77 75+ #> 8 f3dc5f55… 1493 eco The Ne… Nation… Delacr… W. M 53 25-54 #> 9 15add38f… 1847 eco France Nation… Van La… S. F 63 55-74 #> 10 fd41248d… 1458 eco Germany Nation… Moulin O. F 75 75+ #> # … with 490 more rows, 43 more variables: `Date of admission` , #> # `Specimen date` , `Specimen type` , #> # `Specimen type (Numeric)` , Reason , `Isolate number` , #> # `Organism type` , Serotype , `Beta-lactamase` , ESBL , #> # Carbapenemase , `MRSA screening test` , #> # `Inducible clindamycin resistance` , Comment , #> # `Date of data entry` , AMP_ND10 , AMC_ED20 , …"},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"Use function e.g. clinical texts health care records. returns list antimicrobial drugs, doses forms administration found texts.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"","code":"ab_from_text( text, type = c(\"drug\", \"dose\", \"administration\"), collapse = NULL, translate_ab = FALSE, thorough_search = NULL, info = interactive(), ... )"},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"text text analyse type type property search , either \"drug\", \"dose\" \"administration\", see Examples collapse character pass paste(, collapse = ...) return one character per element text, see Examples translate_ab type = \"drug\": column name antibiotics data set translate antibiotic abbreviations , using ab_property(). default FALSE. Using TRUE equal using \"name\". thorough_search logical indicate whether input must extensively searched misspelling faulty input values. Setting TRUE take considerably time using FALSE. default, turn TRUE input elements contain maximum three words. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed .ab()","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"list, character collapse NULL","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"function also internally used .ab(), although searches first drug name throw note drug names returned. Note: .ab() function may use long regular expression match brand names antimicrobial drugs. may fail systems.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"argument-type","dir":"Reference","previous_headings":"","what":"Argument type","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"default, function search antimicrobial drug names. text elements searched official names, ATC codes brand names. uses .ab() internally, correct misspelling. type = \"dose\" (similar, like \"dosing\", \"doses\"), text elements searched numeric values higher 100 resemble years. output numeric. supports unit (g, mg, IE, etc.) multiple values one clinical text, see Examples. type = \"administration\" (abbreviations, like \"admin\", \"adm\"), text elements searched form drug administration. supports following forms (including common abbreviations): buccal, implant, inhalation, instillation, intravenous, nasal, oral, parenteral, rectal, sublingual, transdermal vaginal. Abbreviations oral ('po', 'per os') become \"oral\", values intravenous ('iv', 'intraven') become \"iv\". supports multiple values one clinical text, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"argument-collapse","dir":"Reference","previous_headings":"","what":"Argument collapse","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"Without using collapse, function return list. can convenient use e.g. inside mutate()):df %>% mutate(abx = ab_from_text(clinical_text)) returned AB codes can transformed official names, groups, etc. ab_* functions ab_name() ab_group(), using translate_ab argument. using collapse, function return character:df %>% mutate(abx = ab_from_text(clinical_text, collapse = \"|\"))","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"","code":"# mind the bad spelling of amoxicillin in this line, # straight from a true health care record: ab_from_text(\"28/03/2020 regular amoxicilliin 500mg po tid\") #> [[1]] #> Class 'ab' #> [1] AMX #> ab_from_text(\"500 mg amoxi po and 400mg cipro iv\") #> [[1]] #> Class 'ab' #> [1] AMX CIP #> ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", type = \"dose\") #> [[1]] #> [1] 500 400 #> ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", type = \"admin\") #> [[1]] #> [1] \"oral\" \"iv\" #> ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", collapse = \", \") #> [1] \"AMX, CIP\" # \\donttest{ # if you want to know which antibiotic groups were administered, do e.g.: abx <- ab_from_text(\"500 mg amoxi po and 400mg cipro iv\") ab_group(abx[[1]]) #> [1] \"Beta-lactams/penicillins\" \"Quinolones\" if (require(\"dplyr\")) { tibble(clinical_text = c( \"given 400mg cipro and 500 mg amox\", \"started on doxy iv today\" )) %>% mutate( abx_codes = ab_from_text(clinical_text), abx_doses = ab_from_text(clinical_text, type = \"doses\"), abx_admin = ab_from_text(clinical_text, type = \"admin\"), abx_coll = ab_from_text(clinical_text, collapse = \"|\"), abx_coll_names = ab_from_text(clinical_text, collapse = \"|\", translate_ab = \"name\" ), abx_coll_doses = ab_from_text(clinical_text, type = \"doses\", collapse = \"|\" ), abx_coll_admin = ab_from_text(clinical_text, type = \"admin\", collapse = \"|\" ) ) } #> Loading required package: dplyr #> #> Attaching package: ‘dplyr’ #> The following objects are masked from ‘package:stats’: #> #> filter, lag #> The following objects are masked from ‘package:base’: #> #> intersect, setdiff, setequal, union #> # A tibble: 2 × 8 #> clinical_text abx_c…¹ abx_d…² abx_a…³ abx_c…⁴ abx_c…⁵ abx_c…⁶ abx_c…⁷ #> #> 1 given 400mg cipro and… CIP|AMX Ciprof… 400|500 NA #> 2 started on doxy iv to… DOX Doxycy… NA iv #> # … with abbreviated variable names ¹abx_codes, ²abx_doses, ³abx_admin, #> # ⁴abx_coll, ⁵abx_coll_names, ⁶abx_coll_doses, ⁷abx_coll_admin # }"},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Properties of an Antibiotic — ab_property","title":"Get Properties of an Antibiotic — ab_property","text":"Use functions return specific property antibiotic antibiotics data set. input values evaluated internally .ab().","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Properties of an Antibiotic — ab_property","text":"","code":"ab_name(x, language = get_AMR_locale(), tolower = FALSE, ...) ab_cid(x, ...) ab_synonyms(x, ...) ab_tradenames(x, ...) ab_group(x, language = get_AMR_locale(), ...) ab_atc(x, only_first = FALSE, ...) ab_atc_group1(x, language = get_AMR_locale(), ...) ab_atc_group2(x, language = get_AMR_locale(), ...) ab_loinc(x, ...) ab_ddd(x, administration = \"oral\", ...) ab_ddd_units(x, administration = \"oral\", ...) ab_info(x, language = get_AMR_locale(), ...) ab_url(x, open = FALSE, ...) ab_property(x, property = \"name\", language = get_AMR_locale(), ...) set_ab_names( data, ..., property = \"name\", language = get_AMR_locale(), snake_case = NULL )"},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Properties of an Antibiotic — ab_property","text":"x (vector ) text can coerced valid antibiotic drug code .ab() language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. tolower logical indicate whether first character every output transformed lower case character. lead e.g. \"polymyxin B\" \"polymyxin b\". ... case set_ab_names() data data.frame: columns select (supports tidy selection column1:column4), otherwise arguments passed .ab() only_first logical indicate whether first ATC code must returned, giving preference J0-codes (.e., antimicrobial drug group) administration way administration, either \"oral\" \"iv\" open browse URL using utils::browseURL() property one column names one antibiotics data set: vector_or(colnames(antibiotics), sort = FALSE). data data.frame columns need renamed, character vector column names snake_case logical indicate whether names -called snake case: lower case spaces/slashes replaced underscore (_)","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Properties of an Antibiotic — ab_property","text":"integer case ab_cid() named list case ab_info() multiple ab_atc()/ab_synonyms()/ab_tradenames() double case ab_ddd() data.frame case set_ab_names() character cases","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get Properties of an Antibiotic — ab_property","text":"output translated possible. function ab_url() return direct URL official website. warning returned required ATC code available. function set_ab_names() special column renaming function data.frames. renames columns names resemble antimicrobial drugs. always makes sure new column names unique. property = \"atc\" set, preference given ATC codes J-group.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get Properties of an Antibiotic — ab_property","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://www.whocc./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Get Properties of an Antibiotic — ab_property","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get Properties of an Antibiotic — ab_property","text":"","code":"# all properties: ab_name(\"AMX\") #> [1] \"Amoxicillin\" ab_atc(\"AMX\") #> [1] \"J01CA04\" ab_cid(\"AMX\") #> [1] 33613 ab_synonyms(\"AMX\") #> [1] \"actimoxi\" \"amoclen\" \"amolin\" #> [4] \"amopen\" \"amopenixin\" \"amoxibiotic\" #> [7] \"amoxicaps\" \"amoxicilina\" \"amoxicillin\" #> [10] \"amoxicillin hydrate\" \"amoxicilline\" \"amoxicillinum\" #> [13] \"amoxiden\" \"amoxil\" \"amoxivet\" #> [16] \"amoxy\" \"amoxycillin\" \"amoxyke\" #> [19] \"anemolin\" \"aspenil\" \"atoksilin\" #> [22] \"biomox\" \"bristamox\" \"cemoxin\" #> [25] \"clamoxyl\" \"damoxy\" \"delacillin\" #> [28] \"demoksil\" \"dispermox\" \"efpenix\" #> [31] \"flemoxin\" \"hiconcil\" \"histocillin\" #> [34] \"hydroxyampicillin\" \"ibiamox\" \"imacillin\" #> [37] \"lamoxy\" \"largopen\" \"metafarma capsules\" #> [40] \"metifarma capsules\" \"moksilin\" \"moxacin\" #> [43] \"moxatag\" \"ospamox\" \"pamoxicillin\" #> [46] \"piramox\" \"promoxil\" \"remoxil\" #> [49] \"robamox\" \"sawamox pm\" \"tolodina\" #> [52] \"topramoxin\" \"unicillin\" \"utimox\" #> [55] \"vetramox\" ab_tradenames(\"AMX\") #> [1] \"actimoxi\" \"amoclen\" \"amolin\" #> [4] \"amopen\" \"amopenixin\" \"amoxibiotic\" #> [7] \"amoxicaps\" \"amoxicilina\" \"amoxicillin\" #> [10] \"amoxicillin hydrate\" \"amoxicilline\" \"amoxicillinum\" #> [13] \"amoxiden\" \"amoxil\" \"amoxivet\" #> [16] \"amoxy\" \"amoxycillin\" \"amoxyke\" #> [19] \"anemolin\" \"aspenil\" \"atoksilin\" #> [22] \"biomox\" \"bristamox\" \"cemoxin\" #> [25] \"clamoxyl\" \"damoxy\" \"delacillin\" #> [28] \"demoksil\" \"dispermox\" \"efpenix\" #> [31] \"flemoxin\" \"hiconcil\" \"histocillin\" #> [34] \"hydroxyampicillin\" \"ibiamox\" \"imacillin\" #> [37] \"lamoxy\" \"largopen\" \"metafarma capsules\" #> [40] \"metifarma capsules\" \"moksilin\" \"moxacin\" #> [43] \"moxatag\" \"ospamox\" \"pamoxicillin\" #> [46] \"piramox\" \"promoxil\" \"remoxil\" #> [49] \"robamox\" \"sawamox pm\" \"tolodina\" #> [52] \"topramoxin\" \"unicillin\" \"utimox\" #> [55] \"vetramox\" ab_group(\"AMX\") #> [1] \"Beta-lactams/penicillins\" ab_atc_group1(\"AMX\") #> [1] \"Beta-lactam antibacterials, penicillins\" ab_atc_group2(\"AMX\") #> [1] \"Penicillins with extended spectrum\" ab_url(\"AMX\") #> Amoxicillin #> \"https://www.whocc.no/atc_ddd_index/?code=J01CA04&showdescription=no\" # smart lowercase tranformation ab_name(x = c(\"AMC\", \"PLB\")) #> [1] \"Amoxicillin/clavulanic acid\" \"Polymyxin B\" ab_name(x = c(\"AMC\", \"PLB\"), tolower = TRUE) #> [1] \"amoxicillin/clavulanic acid\" \"polymyxin B\" # defined daily doses (DDD) ab_ddd(\"AMX\", \"oral\") #> [1] 1.5 ab_ddd_units(\"AMX\", \"oral\") #> [1] \"g\" ab_ddd(\"AMX\", \"iv\") #> [1] 3 ab_ddd_units(\"AMX\", \"iv\") #> [1] \"g\" ab_info(\"AMX\") # all properties as a list #> $ab #> [1] \"AMX\" #> #> $cid #> [1] 33613 #> #> $name #> [1] \"Amoxicillin\" #> #> $group #> [1] \"Beta-lactams/penicillins\" #> #> $atc #> [1] \"J01CA04\" #> #> $atc_group1 #> [1] \"Beta-lactam antibacterials, penicillins\" #> #> $atc_group2 #> [1] \"Penicillins with extended spectrum\" #> #> $tradenames #> [1] \"actimoxi\" \"amoclen\" \"amolin\" #> [4] \"amopen\" \"amopenixin\" \"amoxibiotic\" #> [7] \"amoxicaps\" \"amoxicilina\" \"amoxicillin\" #> [10] \"amoxicillin hydrate\" \"amoxicilline\" \"amoxicillinum\" #> [13] \"amoxiden\" \"amoxil\" \"amoxivet\" #> [16] \"amoxy\" \"amoxycillin\" \"amoxyke\" #> [19] \"anemolin\" \"aspenil\" \"atoksilin\" #> [22] \"biomox\" \"bristamox\" \"cemoxin\" #> [25] \"clamoxyl\" \"damoxy\" \"delacillin\" #> [28] \"demoksil\" \"dispermox\" \"efpenix\" #> [31] \"flemoxin\" \"hiconcil\" \"histocillin\" #> [34] \"hydroxyampicillin\" \"ibiamox\" \"imacillin\" #> [37] \"lamoxy\" \"largopen\" \"metafarma capsules\" #> [40] \"metifarma capsules\" \"moksilin\" \"moxacin\" #> [43] \"moxatag\" \"ospamox\" \"pamoxicillin\" #> [46] \"piramox\" \"promoxil\" \"remoxil\" #> [49] \"robamox\" \"sawamox pm\" \"tolodina\" #> [52] \"topramoxin\" \"unicillin\" \"utimox\" #> [55] \"vetramox\" #> #> $loinc #> [1] \"16365-9\" \"25274-2\" \"3344-9\" \"80133-2\" #> #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] 1.5 #> #> $ddd$oral$units #> [1] \"g\" #> #> #> $ddd$iv #> $ddd$iv$amount #> [1] 3 #> #> $ddd$iv$units #> [1] \"g\" #> #> #> # all ab_* functions use as.ab() internally, so you can go from 'any' to 'any': ab_atc(\"AMP\") #> [1] \"J01CA01\" \"S01AA19\" ab_group(\"J01CA01\") #> [1] \"Beta-lactams/penicillins\" ab_loinc(\"ampicillin\") #> [1] \"21066-6\" \"3355-5\" \"33562-0\" \"33919-2\" \"43883-8\" \"43884-6\" \"87604-5\" ab_name(\"21066-6\") #> [1] \"Ampicillin\" ab_name(6249) #> [1] \"Ampicillin\" ab_name(\"J01CA01\") #> [1] \"Ampicillin\" # spelling from different languages and dyslexia are no problem ab_atc(\"ceftriaxon\") #> [1] \"J01DD04\" ab_atc(\"cephtriaxone\") #> [1] \"J01DD04\" ab_atc(\"cephthriaxone\") #> [1] \"J01DD04\" ab_atc(\"seephthriaaksone\") #> [1] \"J01DD04\" # use set_ab_names() for renaming columns colnames(example_isolates) #> [1] \"date\" \"patient\" \"age\" \"gender\" \"ward\" \"mo\" \"PEN\" #> [8] \"OXA\" \"FLC\" \"AMX\" \"AMC\" \"AMP\" \"TZP\" \"CZO\" #> [15] \"FEP\" \"CXM\" \"FOX\" \"CTX\" \"CAZ\" \"CRO\" \"GEN\" #> [22] \"TOB\" \"AMK\" \"KAN\" \"TMP\" \"SXT\" \"NIT\" \"FOS\" #> [29] \"LNZ\" \"CIP\" \"MFX\" \"VAN\" \"TEC\" \"TCY\" \"TGC\" #> [36] \"DOX\" \"ERY\" \"CLI\" \"AZM\" \"IPM\" \"MEM\" \"MTR\" #> [43] \"CHL\" \"COL\" \"MUP\" \"RIF\" colnames(set_ab_names(example_isolates)) #> [1] \"date\" \"patient\" #> [3] \"age\" \"gender\" #> [5] \"ward\" \"mo\" #> [7] \"benzylpenicillin\" \"oxacillin\" #> [9] \"flucloxacillin\" \"amoxicillin\" #> [11] \"amoxicillin_clavulanic_acid\" \"ampicillin\" #> [13] \"piperacillin_tazobactam\" \"cefazolin\" #> [15] \"cefepime\" \"cefuroxime\" #> [17] \"cefoxitin\" \"cefotaxime\" #> [19] \"ceftazidime\" \"ceftriaxone\" #> [21] \"gentamicin\" \"tobramycin\" #> [23] \"amikacin\" \"kanamycin\" #> [25] \"trimethoprim\" \"trimethoprim_sulfamethoxazole\" #> [27] \"nitrofurantoin\" \"fosfomycin\" #> [29] \"linezolid\" \"ciprofloxacin\" #> [31] \"moxifloxacin\" \"vancomycin\" #> [33] \"teicoplanin\" \"tetracycline\" #> [35] \"tigecycline\" \"doxycycline\" #> [37] \"erythromycin\" \"clindamycin\" #> [39] \"azithromycin\" \"imipenem\" #> [41] \"meropenem\" \"metronidazole\" #> [43] \"chloramphenicol\" \"colistin\" #> [45] \"mupirocin\" \"rifampicin\" colnames(set_ab_names(example_isolates, NIT:VAN)) #> [1] \"date\" \"patient\" \"age\" \"gender\" #> [5] \"ward\" \"mo\" \"PEN\" \"OXA\" #> [9] \"FLC\" \"AMX\" \"AMC\" \"AMP\" #> [13] \"TZP\" \"CZO\" \"FEP\" \"CXM\" #> [17] \"FOX\" \"CTX\" \"CAZ\" \"CRO\" #> [21] \"GEN\" \"TOB\" \"AMK\" \"KAN\" #> [25] \"TMP\" \"SXT\" \"nitrofurantoin\" \"fosfomycin\" #> [29] \"linezolid\" \"ciprofloxacin\" \"moxifloxacin\" \"vancomycin\" #> [33] \"TEC\" \"TCY\" \"TGC\" \"DOX\" #> [37] \"ERY\" \"CLI\" \"AZM\" \"IPM\" #> [41] \"MEM\" \"MTR\" \"CHL\" \"COL\" #> [45] \"MUP\" \"RIF\" # \\donttest{ if (require(\"dplyr\")) { example_isolates %>% set_ab_names() # this does the same: example_isolates %>% rename_with(set_ab_names) # set_ab_names() works with any AB property: example_isolates %>% set_ab_names(property = \"atc\") example_isolates %>% set_ab_names(where(is.sir)) %>% colnames() example_isolates %>% set_ab_names(NIT:VAN) %>% colnames() } #> [1] \"date\" \"patient\" \"age\" \"gender\" #> [5] \"ward\" \"mo\" \"PEN\" \"OXA\" #> [9] \"FLC\" \"AMX\" \"AMC\" \"AMP\" #> [13] \"TZP\" \"CZO\" \"FEP\" \"CXM\" #> [17] \"FOX\" \"CTX\" \"CAZ\" \"CRO\" #> [21] \"GEN\" \"TOB\" \"AMK\" \"KAN\" #> [25] \"TMP\" \"SXT\" \"nitrofurantoin\" \"fosfomycin\" #> [29] \"linezolid\" \"ciprofloxacin\" \"moxifloxacin\" \"vancomycin\" #> [33] \"TEC\" \"TCY\" \"TGC\" \"DOX\" #> [37] \"ERY\" \"CLI\" \"AZM\" \"IPM\" #> [41] \"MEM\" \"MTR\" \"CHL\" \"COL\" #> [45] \"MUP\" \"RIF\" # }"},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Custom Antimicrobials — add_custom_antimicrobials","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"add_custom_antimicrobials() can add custom antimicrobial drug names codes.","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"","code":"add_custom_antimicrobials(x) clear_custom_antimicrobials()"},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"x data.frame resembling antibiotics data set, least containing columns \"ab\" \"name\"","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"Important: Due R works, add_custom_antimicrobials() function run every R session - added antimicrobials stored sessions thus lost R exited. two ways automate process: Method 1: Using package option AMR_custom_ab, preferred method. use method: Create data set structure antibiotics data set (containing least columns \"ab\" \"name\") save saveRDS() location choice, e.g. \"~/my_custom_ab.rds\", remote location. Set file location package option AMR_custom_ab: options(AMR_custom_ab = \"~/my_custom_ab.rds\"). can even remote file location, https URL. Since options saved R sessions, best save option .Rprofile file loaded start-R. , open .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"), add text save file: Upon package load, file loaded run add_custom_antimicrobials() function. Method 2: Loading antimicrobial additions directly .Rprofile file. important downside requires AMR package installed else method fail. use method: Edit .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"). Add text like save file: Use clear_custom_antimicrobials() clear previously added antimicrobials.","code":"# Add custom antimicrobial codes: options(AMR_custom_ab = \"~/my_custom_ab.rds\") # Add custom antibiotic drug codes: AMR::add_custom_antimicrobials( data.frame(ab = \"TESTAB\", name = \"Test Antibiotic\", group = \"Test Group\") )"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"","code":"# \\donttest{ # returns NA and throws a warning (which is suppressed here): suppressWarnings( as.ab(\"testab\") ) #> Class 'ab' #> [1] # now add a custom entry - it will be considered by as.ab() and # all ab_*() functions add_custom_antimicrobials( data.frame( ab = \"TESTAB\", name = \"Test Antibiotic\", # you can add any property present in the # 'antibiotics' data set, such as 'group': group = \"Test Group\" ) ) #> ℹ Added one record to the internal antibiotics data set. # \"testab\" is now a new antibiotic: as.ab(\"testab\") #> Class 'ab' #> [1] TESTAB ab_name(\"testab\") #> [1] \"Test Antibiotic\" ab_group(\"testab\") #> [1] \"Test Group\" ab_info(\"testab\") #> $ab #> [1] \"TESTAB\" #> #> $cid #> [1] NA #> #> $name #> [1] \"Test Antibiotic\" #> #> $group #> [1] \"Test Group\" #> #> $atc #> [1] NA #> #> $atc_group1 #> [1] NA #> #> $atc_group2 #> [1] NA #> #> $tradenames #> [1] NA #> #> $loinc #> [1] NA #> #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] NA #> #> $ddd$oral$units #> [1] NA #> #> #> $ddd$iv #> $ddd$iv$amount #> [1] NA #> #> $ddd$iv$units #> [1] NA #> #> #> # Add Co-fluampicil, which is one of the many J01CR50 codes, see # https://www.whocc.no/ddd/list_of_ddds_combined_products/ add_custom_antimicrobials( data.frame( ab = \"COFLU\", name = \"Co-fluampicil\", atc = \"J01CR50\", group = \"Beta-lactams/penicillins\" ) ) #> ℹ Added one record to the internal antibiotics data set. ab_atc(\"Co-fluampicil\") #> [1] \"J01CR50\" ab_name(\"J01CR50\") #> [1] \"Co-fluampicil\" # even antibiotic selectors work x <- data.frame( random_column = \"some value\", coflu = as.sir(\"S\"), ampicillin = as.sir(\"R\") ) x #> random_column coflu ampicillin #> 1 some value S R x[, betalactams()] #> ℹ For betalactams() using columns 'coflu' (co-fluampicil) and #> 'ampicillin' #> coflu ampicillin #> 1 S R # }"},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Custom Microorganisms — add_custom_microorganisms","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"add_custom_microorganisms() can add custom microorganisms, non-taxonomic outcome laboratory analysis.","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"","code":"add_custom_microorganisms(x) clear_custom_microorganisms()"},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"x data.frame resembling microorganisms data set, least containing column \"genus\" (case-insensitive)","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"function fill missing taxonomy , specific taxonomic columns missing, see Examples. Important: Due R works, add_custom_microorganisms() function run every R session - added microorganisms stored sessions thus lost R exited. two ways automate process: Method 1: Using package option AMR_custom_mo, preferred method. use method: Create data set structure microorganisms data set (containing least column \"genus\") save saveRDS() location choice, e.g. \"~/my_custom_mo.rds\", remote location. Set file location package option AMR_custom_mo: options(AMR_custom_mo = \"~/my_custom_mo.rds\"). can even remote file location, https URL. Since options saved R sessions, best save option .Rprofile file loaded start-R. , open .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"), add text save file: Upon package load, file loaded run add_custom_microorganisms() function. Method 2: Loading microorganism directly .Rprofile file. important downside requires AMR package installed else method fail. use method: Edit .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"). Add text like save file: Use clear_custom_microorganisms() clear previously added antimicrobials.","code":"# Add custom microorganism codes: options(AMR_custom_mo = \"~/my_custom_mo.rds\") # Add custom antibiotic drug codes: AMR::add_custom_microorganisms( data.frame(genus = \"Enterobacter\", species = \"asburiae/cloacae\") )"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"","code":"# \\donttest{ # a combination of species is not formal taxonomy, so # this will result in only \"Enterobacter asburiae\": mo_name(\"Enterobacter asburiae/cloacae\") #> [1] \"Enterobacter asburiae\" # now add a custom entry - it will be considered by as.mo() and # all mo_*() functions add_custom_microorganisms( data.frame( genus = \"Enterobacter\", species = \"asburiae/cloacae\" ) ) #> ℹ Added Enterobacter asburiae/cloacae to the internal microorganisms data #> set. # E. asburiae/cloacae is now a new microorganism: mo_name(\"Enterobacter asburiae/cloacae\") #> [1] \"Enterobacter asburiae/cloacae\" # its code: as.mo(\"Enterobacter asburiae/cloacae\") #> Class 'mo' #> [1] CUSTOM1_ENTRBC_A_C # all internal algorithms will work as well: mo_name(\"Ent asburia cloacae\") #> [1] \"Enterobacter asburiae/cloacae\" # and even the taxonomy was added based on the genus! mo_family(\"E. asburiae/cloacae\") #> [1] \"Enterobacteriaceae\" mo_gramstain(\"Enterobacter asburiae/cloacae\") #> [1] \"Gram-negative\" mo_info(\"Enterobacter asburiae/cloacae\") #> $mo #> [1] \"CUSTOM1_ENTRBC_A_C\" #> #> $kingdom #> [1] \"Bacteria\" #> #> $phylum #> [1] \"Pseudomonadota\" #> #> $class #> [1] \"Gammaproteobacteria\" #> #> $order #> [1] \"Enterobacterales\" #> #> $family #> [1] \"Enterobacteriaceae\" #> #> $genus #> [1] \"Enterobacter\" #> #> $species #> [1] \"asburiae/cloacae\" #> #> $subspecies #> [1] \"\" #> #> $status #> [1] \"accepted\" #> #> $synonyms #> NULL #> #> $gramstain #> [1] \"Gram-negative\" #> #> $url #> [1] \"\" #> #> $ref #> [1] \"Self-added, 2023\" #> #> $snomed #> [1] NA #> # the function tries to be forgiving: add_custom_microorganisms( data.frame( GENUS = \"BACTEROIDES / PARABACTEROIDES SLASHLINE\", SPECIES = \"SPECIES\" ) ) #> ℹ Added Bacteroides/Parabacteroides to the internal microorganisms data #> set. mo_name(\"BACTEROIDES / PARABACTEROIDES\") #> [1] \"Bacteroides/Parabacteroides\" mo_rank(\"BACTEROIDES / PARABACTEROIDES\") #> [1] \"genus\" # taxonomy still works, although a slashline genus was given as input: mo_family(\"Bacteroides/Parabacteroides\") #> [1] \"Bacteroidaceae\" # for groups and complexes, set them as species or subspecies: add_custom_microorganisms( data.frame( genus = \"Citrobacter\", species = c(\"freundii\", \"braakii complex\"), subspecies = c(\"complex\", \"\") ) ) #> ℹ Added Citrobacter braakii complex and Citrobacter freundii complex to the #> internal microorganisms data set. mo_name(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"Citrobacter freundii complex\" \"Citrobacter braakii complex\" mo_species(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"freundii complex\" \"braakii complex\" mo_gramstain(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"Gram-negative\" \"Gram-negative\" # }"},{"path":"https://msberends.github.io/AMR/reference/age.html","id":null,"dir":"Reference","previous_headings":"","what":"Age in Years of Individuals — age","title":"Age in Years of Individuals — age","text":"Calculates age years based reference date, system date default.","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Age in Years of Individuals — age","text":"","code":"age(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...)"},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Age in Years of Individuals — age","text":"x date(s), character (vectors) coerced .POSIXlt() reference reference date(s) (default today), character (vectors) coerced .POSIXlt() exact logical indicate whether age calculation exact, .e. decimals. divides number days year--date (YTD) x number days year reference (either 365 366). na.rm logical indicate whether missing values removed ... arguments passed .POSIXlt(), origin","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Age in Years of Individuals — age","text":"integer (decimals) exact = FALSE, double (decimals) otherwise","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Age in Years of Individuals — age","text":"Ages 0 returned NA warning. Ages 120 give warning. function vectorises x reference, meaning either can length 1 argument larger length.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Age in Years of Individuals — age","text":"","code":"# 10 random pre-Y2K birth dates df <- data.frame(birth_date = as.Date(\"2000-01-01\") - runif(10) * 25000) # add ages df$age <- age(df$birth_date) # add exact ages df$age_exact <- age(df$birth_date, exact = TRUE) # add age at millenium switch df$age_at_y2k <- age(df$birth_date, \"2000-01-01\") df #> birth_date age age_exact age_at_y2k #> 1 1944-11-05 78 78.34521 55 #> 2 1966-09-12 56 56.49315 33 #> 3 1991-11-04 31 31.34795 8 #> 4 1992-01-14 31 31.15342 7 #> 5 1990-12-03 32 32.26849 9 #> 6 1960-03-28 62 62.95342 39 #> 7 1973-08-14 49 49.57260 26 #> 8 1956-06-07 66 66.75890 43 #> 9 1973-10-18 49 49.39452 26 #> 10 1968-11-24 54 54.29315 31"},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":null,"dir":"Reference","previous_headings":"","what":"Split Ages into Age Groups — age_groups","title":"Split Ages into Age Groups — age_groups","text":"Split ages age groups defined split argument. allows easier demographic (antimicrobial resistance) analysis.","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Split Ages into Age Groups — age_groups","text":"","code":"age_groups(x, split_at = c(12, 25, 55, 75), na.rm = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Split Ages into Age Groups — age_groups","text":"x age, e.g. calculated age() split_at values split x - default age groups 0-11, 12-24, 25-54, 55-74 75+. See Details. na.rm logical indicate whether missing values removed","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Split Ages into Age Groups — age_groups","text":"Ordered factor","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Split Ages into Age Groups — age_groups","text":"split ages, input split_at argument can : numeric vector. value e.g. c(10, 20) split x 0-9, 10-19 20+. value 50 split x 0-49 50+. default split young children (0-11), youth (12-24), young adults (25-54), middle-aged adults (55-74) elderly (75+). character: \"children\" \"kids\", equivalent : c(0, 1, 2, 4, 6, 13, 18). split 0, 1, 2-3, 4-5, 6-12, 13-17 18+. \"elderly\" \"seniors\", equivalent : c(65, 75, 85). split 0-64, 65-74, 75-84, 85+. \"fives\", equivalent : 1:20 * 5. split 0-4, 5-9, ..., 95-99, 100+. \"tens\", equivalent : 1:10 * 10. split 0-9, 10-19, ..., 90-99, 100+.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Split Ages into Age Groups — age_groups","text":"","code":"ages <- c(3, 8, 16, 54, 31, 76, 101, 43, 21) # split into 0-49 and 50+ age_groups(ages, 50) #> [1] 0-49 0-49 0-49 50+ 0-49 50+ 50+ 0-49 0-49 #> Levels: 0-49 < 50+ # split into 0-19, 20-49 and 50+ age_groups(ages, c(20, 50)) #> [1] 0-19 0-19 0-19 50+ 20-49 50+ 50+ 20-49 20-49 #> Levels: 0-19 < 20-49 < 50+ # split into groups of ten years age_groups(ages, 1:10 * 10) #> [1] 0-9 0-9 10-19 50-59 30-39 70-79 100+ 40-49 20-29 #> 11 Levels: 0-9 < 10-19 < 20-29 < 30-39 < 40-49 < 50-59 < 60-69 < ... < 100+ age_groups(ages, split_at = \"tens\") #> [1] 0-9 0-9 10-19 50-59 30-39 70-79 100+ 40-49 20-29 #> 11 Levels: 0-9 < 10-19 < 20-29 < 30-39 < 40-49 < 50-59 < 60-69 < ... < 100+ # split into groups of five years age_groups(ages, 1:20 * 5) #> [1] 0-4 5-9 15-19 50-54 30-34 75-79 100+ 40-44 20-24 #> 21 Levels: 0-4 < 5-9 < 10-14 < 15-19 < 20-24 < 25-29 < 30-34 < ... < 100+ age_groups(ages, split_at = \"fives\") #> [1] 0-4 5-9 15-19 50-54 30-34 75-79 100+ 40-44 20-24 #> 21 Levels: 0-4 < 5-9 < 10-14 < 15-19 < 20-24 < 25-29 < 30-34 < ... < 100+ # split specifically for children age_groups(ages, c(1, 2, 4, 6, 13, 18)) #> [1] 2-3 6-12 13-17 18+ 18+ 18+ 18+ 18+ 18+ #> Levels: 0 < 1 < 2-3 < 4-5 < 6-12 < 13-17 < 18+ age_groups(ages, \"children\") #> [1] 2-3 6-12 13-17 18+ 18+ 18+ 18+ 18+ 18+ #> Levels: 0 < 1 < 2-3 < 4-5 < 6-12 < 13-17 < 18+ # \\donttest{ # resistance of ciprofloxacin per age group if (require(\"dplyr\") && require(\"ggplot2\")) { example_isolates %>% filter_first_isolate() %>% filter(mo == as.mo(\"Escherichia coli\")) %>% group_by(age_group = age_groups(age)) %>% select(age_group, CIP) %>% ggplot_sir( x = \"age_group\", minimum = 0, x.title = \"Age Group\", title = \"Ciprofloxacin resistance per age group\" ) } #> Loading required package: ggplot2 # }"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"Generate antibiogram, communicate results plots tables. functions follow logic Klinker et al. Barbieri et al. (see Source), allow reporting e.g. R Markdown Quarto well.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"","code":"antibiogram( x, antibiotics = where(is.sir), mo_transform = \"shortname\", ab_transform = NULL, syndromic_group = NULL, add_total_n = TRUE, only_all_tested = FALSE, digits = 0, col_mo = NULL, language = get_AMR_locale(), minimum = 30, combine_SI = TRUE, sep = \" + \", info = interactive() ) # S3 method for antibiogram plot(x, ...) # S3 method for antibiogram autoplot(object, ...) # S3 method for antibiogram knit_print( x, italicise = TRUE, na = getOption(\"knitr.kable.NA\", default = \"\"), ... )"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"Klinker KP et al. (2021). Antimicrobial stewardship antibiograms: importance moving beyond traditional antibiograms. Therapeutic Advances Infectious Disease, May 5;8:20499361211011373; doi:10.1177/20499361211011373 Barbieri E et al. (2021). Development Weighted-Incidence Syndromic Combination Antibiogram (WISCA) guide choice empiric antibiotic treatment urinary tract infection paediatric patients: Bayesian approach Antimicrobial Resistance & Infection Control May 1;10(1):74; doi:10.1186/s13756-021-00939-2 M39 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 5th Edition, 2022, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"x data.frame containing least column microorganisms columns antibiotic results (class 'sir', see .sir()) antibiotics vector antibiotic name code (evaluated .ab(), column name x, (combinations ) antibiotic selectors aminoglycosides() carbapenems(). combination antibiograms, can also set values separated \"+\", \"TZP+TOB\" \"cipro + genta\", given columns resembling antibiotics exist x. See Examples. mo_transform character transform microorganism input - must \"name\", \"shortname\", \"gramstain\", one column names microorganisms data set: \"mo\", \"fullname\", \"status\", \"kingdom\", \"phylum\", \"class\", \"order\", \"family\", \"genus\", \"species\", \"subspecies\", \"rank\", \"ref\", \"source\", \"lpsn\", \"lpsn_parent\", \"lpsn_renamed_to\", \"gbif\", \"gbif_parent\", \"gbif_renamed_to\", \"prevalence\", \"snomed\". Can also NULL transform input. ab_transform character transform antibiotic input - must one column names antibiotics data set: \"ab\", \"cid\", \"name\", \"group\", \"atc\", \"atc_group1\", \"atc_group2\", \"abbreviations\", \"synonyms\", \"oral_ddd\", \"oral_units\", \"iv_ddd\", \"iv_units\", \"loinc\". Can also NULL transform input. syndromic_group column name x, values calculated split rows x, e.g. using ifelse() case_when(). See Examples. add_total_n logical indicate whether total available numbers per pathogen added table (default TRUE). add lowest highest number available isolate per antibiotic (e.g, E. coli 200 isolates available ciprofloxacin 150 amoxicillin, returned number \"150-200\"). only_all_tested (combination antibiograms): logical indicate isolates must tested antibiotics, see Details digits number digits use rounding col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). language language translate text, defaults system language (see get_AMR_locale()) minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. combine_SI logical indicate whether susceptibility determined results either S , instead S (default TRUE) sep separating character antibiotic columns combination antibiograms info logical indicate info printed - default TRUE interactive mode ... used R Markdown Quarto: arguments passed knitr::kable() (otherwise, use) object antibiogram() object italicise logical indicate whether microorganism names knitr table made italic, using italicise_taxonomy(). na character use showing NA values","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"function returns table values 0 100 susceptibility, resistance. Remember filter data let contain first isolates! needed exclude duplicates reduce selection bias. Use first_isolate() determine data set one four available algorithms. types antibiograms listed can plotted (using ggplot2::autoplot() base R plot()/barplot()). antibiogram object can also used directly R Markdown / Quarto (.e., knitr) reports. case, knitr::kable() applied automatically microorganism names even printed italics default (see argument italicise). can also use functions specific 'table reporting' packages transform output antibiogram() needs, e.g. flextable::as_flextable() gt::gt().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"antibiogram-types","dir":"Reference","previous_headings":"","what":"Antibiogram Types","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"four antibiogram types, proposed Klinker et al. (2021, doi:10.1177/20499361211011373 ), supported antibiogram(): Traditional Antibiogram Case example: Susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Code example: Combination Antibiogram Case example: Additional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Code example: Syndromic Antibiogram Case example: Susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Code example: Weighted-Incidence Syndromic Combination Antibiogram (WISCA) Case example: Susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure Code example: Note combination antibiograms, important realise susceptibility can calculated two ways, can set only_all_tested argument (default FALSE). See example two antibiotics, Drug Drug B, antibiogram() works calculate %SI:","code":"antibiogram(your_data, antibiotics = \"TZP\") antibiogram(your_data, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\")) antibiogram(your_data, antibiotics = penicillins(), syndromic_group = \"ward\") library(dplyr) your_data %>% filter(ward == \"ICU\" & specimen_type == \"Respiratory\") %>% antibiogram(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), syndromic_group = ifelse(.$age >= 65 & .$gender == \"Male\" & .$condition == \"Heart Disease\", \"Study Group\", \"Control Group\")) -------------------------------------------------------------------- only_all_tested = FALSE only_all_tested = TRUE ----------------------- ----------------------- Drug A Drug B include as include as include as include as numerator denominator numerator denominator -------- -------- ---------- ----------- ---------- ----------- S or I S or I X X X X R S or I X X X X S or I X X - - S or I R X X X X R R - X - X R - - - - S or I X X - - R - - - - - - - - --------------------------------------------------------------------"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info. example_isolates #> # A tibble: 2,000 × 46 #> date patient age gender ward mo PEN OXA FLC AMX #> #> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA #> # … with 1,990 more rows, and 36 more variables: AMC , AMP , #> # TZP , CZO , FEP , CXM , FOX , CTX , #> # CAZ , CRO , GEN , TOB , AMK , KAN , #> # TMP , SXT , NIT , FOS