mirror of
https://github.com/msberends/AMR.git
synced 2025-08-13 08:26:07 +02:00
.github
R
data
data-raw
inst
man
pkgdown
tests
vignettes
.gitignore
AMR.Rmd
AMR_for_Python.Rmd
AMR_with_tidymodels.Rmd
EUCAST.Rmd
MDR.Rmd
PCA.Rmd
WHONET.Rmd
WISCA.Rmd
benchmarks.Rmd.not
datasets.Rmd
welcome_to_AMR.Rmd
.Rbuildignore
.gitignore
AMR.Rproj
CRAN-SUBMISSION
DESCRIPTION
LICENSE
NAMESPACE
NEWS.md
README.Rmd
README.md
_pkgdown.yml
codecov.yml
cran-comments.md
index.Rmd
index.md
logo.svg
100 lines
3.5 KiB
Plaintext
100 lines
3.5 KiB
Plaintext
---
|
|
title: "Work with WHONET data"
|
|
output:
|
|
rmarkdown::html_vignette:
|
|
toc: true
|
|
toc_depth: 3
|
|
vignette: >
|
|
%\VignetteIndexEntry{Work with WHONET data}
|
|
%\VignetteEncoding{UTF-8}
|
|
%\VignetteEngine{knitr::rmarkdown}
|
|
editor_options:
|
|
chunk_output_type: console
|
|
---
|
|
|
|
```{r setup, include = FALSE, results = 'markup'}
|
|
knitr::opts_chunk$set(
|
|
collapse = TRUE,
|
|
comment = "#>",
|
|
fig.width = 7.5,
|
|
fig.height = 4.5
|
|
)
|
|
```
|
|
|
|
### Import of data
|
|
|
|
This tutorial assumes you already imported the WHONET data with e.g. the [`readxl` package](https://readxl.tidyverse.org/). In RStudio, this can be done using the menu button 'Import Dataset' in the tab 'Environment'. Choose the option 'From Excel' and select your exported file. Make sure date fields are imported correctly.
|
|
|
|
An example syntax could look like this:
|
|
|
|
```{r, eval = FALSE}
|
|
library(readxl)
|
|
data <- read_excel(path = "path/to/your/file.xlsx")
|
|
```
|
|
|
|
This package comes with an [example data set `WHONET`](https://amr-for-r.org/reference/WHONET.html). We will use it for this analysis.
|
|
|
|
### Preparation
|
|
|
|
First, load the relevant packages if you did not yet did this. I use the tidyverse for all of my analyses. All of them. If you don't know it yet, I suggest you read about it on their website: https://www.tidyverse.org/.
|
|
|
|
```{r, message = FALSE}
|
|
library(dplyr) # part of tidyverse
|
|
library(ggplot2) # part of tidyverse
|
|
library(AMR) # this package
|
|
library(cleaner) # to create frequency tables
|
|
```
|
|
|
|
We will have to transform some variables to simplify and automate the analysis:
|
|
|
|
* Microorganisms should be transformed to our own microorganism codes (called an `mo`) using [our Catalogue of Life reference data set](https://amr-for-r.org/reference/catalogue_of_life), which contains all ~70,000 microorganisms from the taxonomic kingdoms Bacteria, Fungi and Protozoa. We do the tranformation with `as.mo()`. This function also recognises almost all WHONET abbreviations of microorganisms.
|
|
* Antimicrobial results or interpretations have to be clean and valid. In other words, they should only contain values `"S"`, `"I"` or `"R"`. That is exactly where the `as.sir()` function is for.
|
|
|
|
```{r}
|
|
# 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)
|
|
```
|
|
|
|
No errors or warnings, so all values are transformed succesfully.
|
|
|
|
We also created a package dedicated to data cleaning and checking, called the `cleaner` package. Its `freq()` function can be used to create frequency tables.
|
|
|
|
So let's check our data, with a couple of frequency tables:
|
|
|
|
```{r, results = 'asis'}
|
|
# our newly created `mo` variable, put in the mo_name() function
|
|
data %>% freq(mo_name(mo), nmax = 10)
|
|
```
|
|
```{r, results = 'asis'}
|
|
# our transformed antibiotic columns
|
|
# amoxicillin/clavulanic acid (J01CR02) as an example
|
|
data %>% freq(AMC_ND2)
|
|
```
|
|
|
|
### A first glimpse at results
|
|
|
|
An easy `ggplot` will already give a lot of information, using the included `ggplot_sir()` function:
|
|
|
|
```{r, eval = FALSE}
|
|
data %>%
|
|
group_by(Country) %>%
|
|
select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>%
|
|
ggplot_sir(translate_ab = "ab", facet = "Country", datalabels = FALSE)
|
|
```
|
|
|
|
```{r, echo = FALSE}
|
|
# on very old and some new releases of R, this may lead to an error
|
|
tryCatch(
|
|
data %>%
|
|
group_by(Country) %>%
|
|
select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>%
|
|
ggplot_sir(translate_ab = "ab", facet = "Country", datalabels = FALSE) %>%
|
|
print(),
|
|
error = function(e) base::invisible()
|
|
)
|
|
```
|