diff --git a/.Rbuildignore b/.Rbuildignore index 722e91de..87240fb2 100755 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -20,4 +20,4 @@ ^Meta$ ^pkgdown$ ^public$ -^reproduction.*R$ +^data-raw$ diff --git a/DESCRIPTION b/DESCRIPTION index c19186df..7c391754 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 0.6.1.9049 -Date: 2019-05-31 +Version: 0.6.1.9050 +Date: 2019-06-01 Title: Antimicrobial Resistance Analysis Authors@R: c( person( @@ -70,5 +70,4 @@ BugReports: https://gitlab.com/msberends/AMR/issues License: GPL-2 | file LICENSE Encoding: UTF-8 LazyData: true -StagedInstall: false RoxygenNote: 6.1.1 diff --git a/NAMESPACE b/NAMESPACE index 4387f6f2..9493fb50 100755 --- a/NAMESPACE +++ b/NAMESPACE @@ -92,7 +92,6 @@ export(count_all) export(count_df) export(eucast_exceptional_phenotypes) export(eucast_rules) -export(eucast_rules_file) export(facet_rsi) export(filter_1st_cephalosporins) export(filter_2nd_cephalosporins) diff --git a/NEWS.md b/NEWS.md index 3a7081d0..a6d6e248 100755 --- a/NEWS.md +++ b/NEWS.md @@ -17,11 +17,8 @@ * All references to antibiotics in our package now use EARS-Net codes, like `AMX` for amoxicillin * Functions `atc_certe`, `ab_umcg` and `atc_trivial_nl` have been removed * All `atc_*` functions are superceded by `ab_*` functions - * All output will be translated by using an included, local translation file that can be found after install with: - ```r - system.file("translations.tsv", package = "AMR") - ``` - Please create an issue in one of our repositories if you want additions in this file. + * All output will be translated by using an included translation file which [can be viewed here](https://gitlab.com/msberends/AMR/blob/master/data-raw/translations.tsv) + Please [create an issue in one of our repositories](https://gitlab.com/msberends/AMR/issues/new?issue[title]=Translation%20suggestion) if you want additions in this file. * Improvements to plotting AMR results with `ggplot_rsi()`: * New parameter `colours` to set the bar colours * New parameters `title`, `subtitle`, `caption`, `x.title` and `y.title` to set titles and axis descriptions @@ -44,7 +41,8 @@ freq(age) %>% boxplot() ``` -* Removed all hardcoded EUCAST rules and replaced them with a new reference file: `./inst/eucast/eucast.tsv` +* Removed all hardcoded EUCAST rules and replaced them with a new reference file which [can be viewed here](https://gitlab.com/msberends/AMR/blob/master/data-raw/eucast_rules.tsv) + Please [create an issue in one of our repositories](https://gitlab.com/msberends/AMR/issues/new?issue[title]=EUCAST%20edit) if you want changes in this file. * Added ceftazidim intrinsic resistance to *Streptococci* * Changed default settings for `age_groups()`, to let groups of fives and tens end with 100+ instead of 120+ * Fix for `freq()` for when all values are `NA` @@ -56,8 +54,7 @@ * Fix for `mo_shortname()` where species would not be determined correctly #### Other -* Support for R 3.6.0 -* Prevented [staged install](https://developer.r-project.org/Blog/public/2019/02/14/staged-install/index.html) in R 3.6.0 and later by adding `StagedInstall: false` to the DESCRIPTION file +* Support for R 3.6.0 and later by providing support for [staged install](https://developer.r-project.org/Blog/public/2019/02/14/staged-install/index.html) # AMR 0.6.1 diff --git a/R/eucast_rules.R b/R/eucast_rules.R index 1bb224f9..9b7b82c6 100755 --- a/R/eucast_rules.R +++ b/R/eucast_rules.R @@ -20,7 +20,6 @@ # ==================================================================== # # global variables -EUCAST_RULES_FILE_LOCATION <- system.file("eucast/eucast_rules.tsv", package = "AMR") EUCAST_VERSION_BREAKPOINTS <- "9.0, 2019" EUCAST_VERSION_EXPERT_RULES <- "3.1, 2016" @@ -37,10 +36,7 @@ EUCAST_VERSION_EXPERT_RULES <- "3.1, 2016" #' \strong{Note:} This function does not translate MIC values to RSI values. Use \code{\link{as.rsi}} for that. \cr #' \strong{Note:} When ampicillin (AMP, J01CA01) is not available but amoxicillin (AMX, J01CA04) is, the latter will be used for all rules where there is a dependency on ampicillin. These drugs are interchangeable when it comes to expression of antimicrobial resistance. #' -#' The file used for applying all EUCAST rules can be retrieved with \code{\link{eucast_rules_file}()}. It returns an easily readable data set containing all rules. The original TSV file (tab separated file) that is being read by \code{eucast_rules()} can be found by running this command: \cr -#' \code{AMR::EUCAST_RULES_FILE_LOCATION} (without brackets). -#' -#' In the source code the file containing all rules is located \href{https://gitlab.com/msberends/AMR/blob/master/inst/eucast/eucast_rules.tsv}{here}. +#' The file containing all EUCAST rules is located here: \url{https://gitlab.com/msberends/AMR/blob/master/data-raw/eucast_rules.tsv}. #' #' @section Antibiotics: #' To define antibiotics column names, leave as it is to determine it automatically with \code{\link{guess_ab_col}} or input a text (case-insensitive), or use \code{NULL} to skip a column (e.g. \code{TIC = NULL} to skip ticarcillin). Manually defined but non-existing columns will be skipped with a warning. @@ -141,8 +137,6 @@ EUCAST_VERSION_EXPERT_RULES <- "3.1, 2016" #' \url{http://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Breakpoint_tables/v_9.0_Breakpoint_Tables.xlsx} #' } #' } -#' -#' For editing the reference file (which is available with \code{\link{eucast_rules_file}}), these values can all be used for target antibiotics: aminoglycosides, tetracyclines, polymyxins, macrolides, glycopeptides, streptogramins, cephalosporins, cephalosporins_without_cfta, carbapenems, aminopenicillins, ureidopenicillins, fluoroquinolones, all_betalactams, and all separate four letter codes like AMC. They can be separated by comma: \code{"AMC, fluoroquinolones"}. The mo_property can be any column name from the \code{\link{microorganisms}} data set, or \code{genus_species} or \code{gramstain}. This file contains references to the 'Burkholderia cepacia complex'. The species in this group can be found in: LiPuma JJ, 2015 (PMID 16217180). #' @inheritSection AMR Read more on our website! #' @examples #' a <- eucast_rules(septic_patients) @@ -499,7 +493,7 @@ eucast_rules <- function(x, y[y != "" & y %in% colnames(df)] } - eucast_rules_df <- eucast_rules_file() + eucast_rules_df <- eucast_rules_file # internal data file no_of_changes <- 0 for (i in 1:nrow(eucast_rules_df)) { @@ -754,16 +748,3 @@ eucast_rules <- function(x, } } -#' @rdname eucast_rules -#' @importFrom dplyr %>% arrange -#' @export -eucast_rules_file <- function() { - utils::read.delim(file = EUCAST_RULES_FILE_LOCATION, - sep = "\t", - stringsAsFactors = FALSE, - header = TRUE, - strip.white = TRUE, - na = c(NA, "", NULL)) %>% - arrange(reference.rule_group, - reference.rule) -} diff --git a/R/get_locale.R b/R/get_locale.R index 653e9822..a81a4c1a 100755 --- a/R/get_locale.R +++ b/R/get_locale.R @@ -22,11 +22,11 @@ #' Translate strings from AMR package #' #' For language-dependent output of AMR functions, like \code{\link{mo_fullname}} and \code{\link{mo_type}}. -#' @details Strings will be translated to foreign languages if they are defined in a local translation file. This file comes with this package and can be found when running: +#' @details Strings will be translated to foreign languages if they are defined in a local translation file. Additions to this file can be suggested at our repository. The file can be found here: \url{https://gitlab.com/msberends/AMR/blob/master/data-raw/translations.tsv}. #' -#' \code{system.file("translations.tsv", package = "AMR")} +#' Please suggest your own translations \href{https://gitlab.com/msberends/AMR/issues/new?issue[title]=Translation\%20suggestion}{by creating a new issue on our repository}. #' -#' This file will be read by all functions where a translated output can be desired, like all \code{\link{mo_property}} functions (\code{\link{mo_fullname}}, \code{\link{mo_type}}, etc.). Please suggest your own translations \href{https://gitlab.com/msberends/AMR/issues/new?issue[title]=Translation\%20suggestion}{by creating a new issue on our repository}. +#' This file will be read by all functions where a translated output can be desired, like all \code{\link{mo_property}} functions (\code{\link{mo_fullname}}, \code{\link{mo_type}}, etc.). #' #' The system language will be used at default, if supported, using \code{\link{get_locale}}. The system language can be overwritten with \code{\link{getOption}("AMR_locale")}. #' @inheritSection AMR Read more on our website! diff --git a/R/misc.R b/R/misc.R index 9c1236aa..20e64d18 100755 --- a/R/misc.R +++ b/R/misc.R @@ -243,9 +243,10 @@ generate_warning_abs_missing <- function(missing, any = FALSE) { stopifnot_installed_package <- function(package) { - if (!package %in% base::rownames(utils::installed.packages())) { - stop("this function requires the ", package, " package.", call. = FALSE) - } + # no "utils::installed.packages()" since it requires non-staged install since R 3.6.0 + # https://developer.r-project.org/Blog/public/2019/02/14/staged-install/index.html + get(".packageName", envir = asNamespace(package)) + return(invisible()) } # translate strings based on inst/translations.tsv @@ -262,16 +263,7 @@ t <- function(from, language = get_locale()) { return(from) } - df_trans <- utils::read.table(file = system.file("translations.tsv", package = "AMR"), - sep = "\t", - stringsAsFactors = FALSE, - header = TRUE, - blank.lines.skip = TRUE, - fill = TRUE, - strip.white = TRUE, - encoding = "UTF-8", - fileEncoding = "UTF-8", - na.strings = c(NA, "", NULL)) + df_trans <- translations_file # internal data file if (!language %in% df_trans$lang) { stop("Unsupported language: '", language, "' - use one of: ", diff --git a/R/mo.R b/R/mo.R index c70b0cc3..b5ff422b 100755 --- a/R/mo.R +++ b/R/mo.R @@ -191,7 +191,7 @@ #' } as.mo <- function(x, Becker = FALSE, Lancefield = FALSE, allow_uncertain = TRUE, reference_df = get_mo_source(), ...) { if (!"AMR" %in% base::.packages()) { - library("AMR") + require("AMR") # check onLoad() in R/zzz.R: data tables are created there. } @@ -295,7 +295,7 @@ exec_as.mo <- function(x, debug = FALSE) { if (!"AMR" %in% base::.packages()) { - library("AMR") + require("AMR") # check onLoad() in R/zzz.R: data tables are created there. } diff --git a/R/mo_property.R b/R/mo_property.R index 947f3ef7..3d0c6024 100755 --- a/R/mo_property.R +++ b/R/mo_property.R @@ -364,7 +364,7 @@ mo_validate <- function(x, property, ...) { } if (!"AMR" %in% base::.packages()) { - library("AMR") + require("AMR") # check onLoad() in R/zzz.R: data tables are created there. } diff --git a/R/sysdata.rda b/R/sysdata.rda new file mode 100644 index 00000000..ee6d78c5 Binary files /dev/null and b/R/sysdata.rda differ diff --git a/inst/eucast/eucast_rules.tsv b/data-raw/eucast_rules.tsv similarity index 100% rename from inst/eucast/eucast_rules.tsv rename to data-raw/eucast_rules.tsv diff --git a/data-raw/internals.R b/data-raw/internals.R new file mode 100644 index 00000000..0c55d4aa --- /dev/null +++ b/data-raw/internals.R @@ -0,0 +1,40 @@ +# EUCAST rules ---- +# For editing the reference file, these values can all be used for target antibiotics: +# "aminoglycosides", "tetracyclines", "polymyxins", "macrolides", "glycopeptides", +# "streptogramins", "cephalosporins", "cephalosporins_without_CAZ", "carbapenems", +# "minopenicillins", "ureidopenicillins", "fluoroquinolones", "all_betalactams", +# and all separate EARS-Net letter codes like "AMC". They can be separated by comma: "AMC, fluoroquinolones". +# The mo_property can be any column name from the AMR::microorganisms data set, or "genus_species" or "gramstain". +# This file contains references to the 'Burkholderia cepacia complex'. The species in this group can be found in: +# LiPuma JJ, 2015 (PMID 16217180). +eucast_rules_file <- dplyr::arrange( + .data = utils::read.delim(file = "data-raw/eucast_rules.tsv", + sep = "\t", + stringsAsFactors = FALSE, + header = TRUE, + strip.white = TRUE, + na = c(NA, "", NULL)), + reference.rule_group, + reference.rule) + +# Translations ----- +translations_file <- utils::read.table(file = "data-raw/translations.tsv", + sep = "\t", + stringsAsFactors = FALSE, + header = TRUE, + blank.lines.skip = TRUE, + fill = TRUE, + strip.white = TRUE, + encoding = "UTF-8", + fileEncoding = "UTF-8", + na.strings = c(NA, "", NULL)) + +# Export to package as internal data ---- +usethis::use_data(eucast_rules_file, translations_file, + internal = TRUE, + overwrite = TRUE, + version = 2) + +# Remove from global environment ---- +rm(eucast_rules_file) +rm(translations_file) diff --git a/reproduction_of_antibiotics.R b/data-raw/reproduction_of_antibiotics.R similarity index 100% rename from reproduction_of_antibiotics.R rename to data-raw/reproduction_of_antibiotics.R diff --git a/reproduction_of_microorganisms.R b/data-raw/reproduction_of_microorganisms.R similarity index 100% rename from reproduction_of_microorganisms.R rename to data-raw/reproduction_of_microorganisms.R diff --git a/reproduction_of_rsi_translation.R b/data-raw/reproduction_of_rsi_translation.R similarity index 100% rename from reproduction_of_rsi_translation.R rename to data-raw/reproduction_of_rsi_translation.R diff --git a/inst/translations.tsv b/data-raw/translations.tsv similarity index 100% rename from inst/translations.tsv rename to data-raw/translations.tsv diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index bd2d07c0..236e0ffb 100644 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -78,7 +78,7 @@
diff --git a/docs/articles/index.html b/docs/articles/index.html index bdc1bf1a..d564e645 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -78,7 +78,7 @@ diff --git a/docs/authors.html b/docs/authors.html index 6445876c..dbb80836 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -78,7 +78,7 @@ diff --git a/docs/index.html b/docs/index.html index aab57201..dd4f82b9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -42,7 +42,7 @@ diff --git a/docs/news/index.html b/docs/news/index.html index efa99712..aeaa4bc1 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -78,7 +78,7 @@ @@ -272,10 +272,7 @@AMX
for amoxicillinatc_certe
, ab_umcg
and atc_trivial_nl
have been removedatc_*
functions are superceded by ab_*
functionsAll output will be translated by using an included, local translation file that can be found after install with:
- -Please create an issue in one of our repositories if you want additions in this file.ggplot_rsi()
:
@@ -297,19 +294,18 @@ Please create an issue in one of our repositories if you want additions in this
support for boxplots:
- +./inst/eucast/eucast.tsv
-age_groups()
, to let groups of fives and tens end with 100+ instead of 120+StagedInstall: false
to the DESCRIPTION fileNew filters for antimicrobial classes. Use these functions to filter isolates on results in one of more antibiotics from a specific class:
-filter_aminoglycosides()
-filter_carbapenems()
-filter_cephalosporins()
-filter_1st_cephalosporins()
-filter_2nd_cephalosporins()
-filter_3rd_cephalosporins()
-filter_4th_cephalosporins()
-filter_fluoroquinolones()
-filter_glycopeptides()
-filter_macrolides()
-filter_tetracyclines()
filter_aminoglycosides()
+filter_carbapenems()
+filter_cephalosporins()
+filter_1st_cephalosporins()
+filter_2nd_cephalosporins()
+filter_3rd_cephalosporins()
+filter_4th_cephalosporins()
+filter_fluoroquinolones()
+filter_glycopeptides()
+filter_macrolides()
+filter_tetracyclines()
The antibiotics
data set will be searched, after which the input data will be checked for column names with a value in any abbreviations, codes or official names found in the antibiotics
data set. For example:
All ab_*
functions are deprecated and replaced by atc_*
functions:
ab_property -> atc_property()
-ab_name -> atc_name()
-ab_official -> atc_official()
-ab_trivial_nl -> atc_trivial_nl()
-ab_certe -> atc_certe()
-ab_umcg -> atc_umcg()
-ab_tradenames -> atc_tradenames()
ab_property -> atc_property()
+ab_name -> atc_name()
+ab_official -> atc_official()
+ab_trivial_nl -> atc_trivial_nl()
+ab_certe -> atc_certe()
+ab_umcg -> atc_umcg()
+ab_tradenames -> atc_tradenames()
as.atc()
internally. The old atc_property
has been renamed atc_online_property()
. This is done for two reasons: firstly, not all ATC codes are of antibiotics (ab) but can also be of antivirals or antifungals. Secondly, the input must have class atc
or must be coerable to this class. Properties of these classes should start with the same class name, analogous to as.mo()
and e.g. mo_genus
.set_mo_source()
and get_mo_source()
to use your own predefined MO codes as input for as.mo()
and consequently all mo_*
functionsdplyr
version 0.8.0as.atc()
age_groups()
to split ages into custom or predefined groups (like children or elderly). This allows for easier demographic antimicrobial resistance analysis per age group.New function ggplot_rsi_predict()
as well as the base R plot()
function can now be used for resistance prediction calculated with resistance_predict()
:
Functions filter_first_isolate()
and filter_first_weighted_isolate()
to shorten and fasten filtering on data sets with antimicrobial results, e.g.:
is equal to:
- +availability()
to check the number of available (non-empty) results in a data.frame
as.atc()
Now handles incorrect spelling, like i
instead of y
and f
instead of ph
:
Uncertainty of the algorithm is now divided into four levels, 0 to 3, where the default allow_uncertain = TRUE
is equal to uncertainty level 2. Run ?as.mo
for more info about these levels.
# equal:
-as.mo(..., allow_uncertain = TRUE)
-as.mo(..., allow_uncertain = 2)
-
-# also equal:
-as.mo(..., allow_uncertain = FALSE)
-as.mo(..., allow_uncertain = 0)
# equal:
+as.mo(..., allow_uncertain = TRUE)
+as.mo(..., allow_uncertain = 2)
+
+# also equal:
+as.mo(..., allow_uncertain = FALSE)
+as.mo(..., allow_uncertain = 0)
as.mo(..., allow_uncertain = 3)
could lead to very unreliable results.~/.Rhistory_mo
. Use the new function clean_mo_history()
to delete this file, which resets the algorithms.Incoercible results will now be considered ‘unknown’, MO code UNKNOWN
. On foreign systems, properties of these will be translated to all languages already previously supported: German, Dutch, French, Italian, Spanish and Portuguese:
as.mo(..., allow_uncertain = 3)
-
Support for tidyverse quasiquotation! Now you can create frequency tables of function outcomes:
-# Determine genus of microorganisms (mo) in `septic_patients` data set:
-# OLD WAY
-septic_patients %>%
- mutate(genus = mo_genus(mo)) %>%
- freq(genus)
-# NEW WAY
-septic_patients %>%
- freq(mo_genus(mo))
-
-# Even supports grouping variables:
-septic_patients %>%
- group_by(gender) %>%
- freq(mo_genus(mo))
+# Determine genus of microorganisms (mo) in `septic_patients` data set:
+# OLD WAY
+septic_patients %>%
+ mutate(genus = mo_genus(mo)) %>%
+ freq(genus)
+# NEW WAY
+septic_patients %>%
+ freq(mo_genus(mo))
+
+# Even supports grouping variables:
+septic_patients %>%
+ group_by(gender) %>%
+ freq(mo_genus(mo))
- Header info is now available as a list, with the
header
function
- The parameter
header
is now set to TRUE
at default, even for markdown
@@ -625,10 +621,10 @@ Using as.mo(..., allow_uncertain = 3)Fewer than 3 characters as input for as.mo
will return NA
-
Function as.mo
(and all mo_*
wrappers) now supports genus abbreviations with “species” attached
-
+
- Added parameter
combine_IR
(TRUE/FALSE) to functions portion_df
and count_df
, to indicate that all values of I and R must be merged into one, so the output only consists of S vs. IR (susceptible vs. non-susceptible)
- Fix for
portion_*(..., as_percent = TRUE)
when minimal number of isolates would not be met
@@ -641,15 +637,15 @@ Using as.mo(..., allow_uncertain = 3)
-
Support for grouping variables, test with:
-
+
-
Support for (un)selecting columns:
-
+
- Check for
hms::is.hms
@@ -729,18 +725,18 @@ Using as.mo(..., allow_uncertain = 3)
They also come with support for German, Dutch, French, Italian, Spanish and Portuguese:
-mo_gramstain("E. coli")
-# [1] "Gram negative"
-mo_gramstain("E. coli", language = "de") # German
-# [1] "Gramnegativ"
-mo_gramstain("E. coli", language = "es") # Spanish
-# [1] "Gram negativo"
-mo_fullname("S. group A", language = "pt") # Portuguese
-# [1] "Streptococcus grupo A"
mo_gramstain("E. coli")
+# [1] "Gram negative"
+mo_gramstain("E. coli", language = "de") # German
+# [1] "Gramnegativ"
+mo_gramstain("E. coli", language = "es") # Spanish
+# [1] "Gram negativo"
+mo_fullname("S. group A", language = "pt") # Portuguese
+# [1] "Streptococcus grupo A"
Furthermore, former taxonomic names will give a note about the current taxonomic name:
-mo_gramstain("Esc blattae")
-# Note: 'Escherichia blattae' (Burgess et al., 1973) was renamed 'Shimwellia blattae' (Priest and Barker, 2010)
-# [1] "Gram negative"
mo_gramstain("Esc blattae")
+# Note: 'Escherichia blattae' (Burgess et al., 1973) was renamed 'Shimwellia blattae' (Priest and Barker, 2010)
+# [1] "Gram negative"
count_R
, count_IR
, count_I
, count_SI
and count_S
to selectively count resistant or susceptible isolates
as.mo(..., allow_uncertain = 3)
-
Functions as.mo
and is.mo
as replacements for as.bactid
and is.bactid
(since the microoganisms
data set not only contains bacteria). These last two functions are deprecated and will be removed in a future release. The as.mo
function determines microbial IDs using intelligent rules:
-as.mo("E. coli")
-# [1] B_ESCHR_COL
-as.mo("MRSA")
-# [1] B_STPHY_AUR
-as.mo("S group A")
-# [1] B_STRPTC_GRA
+as.mo("E. coli")
+# [1] B_ESCHR_COL
+as.mo("MRSA")
+# [1] B_STPHY_AUR
+as.mo("S group A")
+# [1] B_STRPTC_GRA
And with great speed too - on a quite regular Linux server from 2007 it takes us less than 0.02 seconds to transform 25,000 items:
-
+
- Added parameter
reference_df
for as.mo
, so users can supply their own microbial IDs, name or codes as a reference table
- Renamed all previous references to
bactid
to mo
, like:
@@ -790,12 +786,12 @@ Using as.mo(..., allow_uncertain = 3)Added three antimicrobial agents to the antibiotics
data set: Terbinafine (D01BA02), Rifaximin (A07AA11) and Isoconazole (D01AC05)
-
Added 163 trade names to the antibiotics
data set, it now contains 298 different trade names in total, e.g.:
-
+
- For
first_isolate
, rows will be ignored when there’s no species available
- Function
ratio
is now deprecated and will be removed in a future release, as it is not really the scope of this package
@@ -806,13 +802,13 @@ Using as.mo(..., allow_uncertain = 3)
-
Support for quasiquotation in the functions series count_*
and portions_*
, and n_rsi
. This allows to check for more than 2 vectors or columns.
-
+
- Edited
ggplot_rsi
and geom_rsi
so they can cope with count_df
. The new fun
parameter has value portion_df
at default, but can be set to count_df
.
- Fix for
ggplot_rsi
when the ggplot2
package was not loaded
@@ -826,12 +822,12 @@ Using as.mo(..., allow_uncertain = 3)
-
Support for types (classes) list and matrix for freq
-
+
For lists, subsetting is possible:
-
+
eucast_rules(x, col_mo = NULL, info = TRUE, rules = c("breakpoints", - "expert", "other", "all"), verbose = FALSE, ...) - -eucast_rules_file()+ "expert", "other", "all"), verbose = FALSE, ...)
- + | EUCAST rules |