From 8bc4081b0342bf545644d93b451dc56825ac0147 Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Fri, 4 Oct 2019 15:36:12 +0200 Subject: [PATCH] (v0.7.1.9092) as.ab() improvements --- DESCRIPTION | 8 ++--- NAMESPACE | 1 - NEWS.md | 5 +-- R/ab.R | 54 ++++++++++++++++++++++++++-- R/ab_property.R | 2 +- R/availability.R | 2 +- R/bug_drug_combinations.R | 2 +- R/first_isolate.R | 2 +- R/freq.R | 3 +- R/ggplot_rsi.R | 4 +-- R/misc.R | 42 ++++++++++++++++++++++ R/mo.R | 2 +- R/portion.R | 2 +- R/rsi_calc.R | 2 +- data/antibiotics.rda | Bin 34924 -> 34910 bytes docs/404.html | 2 +- docs/LICENSE-text.html | 2 +- docs/articles/index.html | 2 +- docs/authors.html | 2 +- docs/index.html | 2 +- docs/news/index.html | 12 ++++--- docs/reference/as.ab.html | 69 ++++++++++++++++++------------------ docs/reference/index.html | 2 +- docs/reference/portion.html | 4 +-- man/as.ab.Rd | 4 ++- man/portion.Rd | 2 +- tests/testthat/test-ab.R | 3 ++ tests/testthat/test-misc.R | 10 ++++++ 28 files changed, 176 insertions(+), 71 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 0dc6a5bd..fd701a9e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 0.7.1.9091 -Date: 2019-09-30 +Version: 0.7.1.9092 +Date: 2019-10-04 Title: Antimicrobial Resistance Analysis Authors@R: c( person(role = c("aut", "cre"), @@ -34,17 +34,15 @@ Depends: R (>= 3.1.0) Imports: backports, - clean (>= 1.1.0.9000), + clean (>= 1.1.0), crayon (>= 1.3.0), data.table (>= 1.9.0), dplyr (>= 0.7.0), ggplot2, - hms, knitr (>= 1.0.0), microbenchmark, pillar, rlang (>= 0.3.1), - scales, tidyr (>= 0.7.0) Suggests: covr (>= 3.0.1), diff --git a/NAMESPACE b/NAMESPACE index a0f3b09f..f288e834 100755 --- a/NAMESPACE +++ b/NAMESPACE @@ -233,7 +233,6 @@ exportMethods(summary.mo) exportMethods(summary.rsi) importFrom(clean,freq) importFrom(clean,freq.default) -importFrom(clean,percentage) importFrom(clean,top_freq) importFrom(crayon,bgGreen) importFrom(crayon,bgRed) diff --git a/NEWS.md b/NEWS.md index f6da67e1..3237ced7 100755 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,5 @@ -# AMR 0.7.1.9091 -Last updated: 30-Sep-2019 +# AMR 0.7.1.9092 +Last updated: 04-Oct-2019 ### Breaking * Determination of first isolates now **excludes** all 'unknown' microorganisms at default, i.e. microbial code `"UNKNOWN"`. They can be included with the new parameter `include_unknown`: @@ -94,6 +94,7 @@ * Added support for unknown yeasts and fungi * Changed most microorganism IDs to improve readability. For example, the old code `B_ENTRC_FAE` could have been both *E. faecalis* and *E. faecium*. Its new code is `B_ENTRC_FCLS` and *E. faecium* has become `B_ENTRC_FACM`. Also, the Latin character æ (ae) is now preserved at the start of each genus and species abbreviation. For example, the old code for *Aerococcus urinae* was `B_ARCCC_NAE`. This is now `B_AERCC_URIN`. **IMPORTANT:** Old microorganism IDs are still supported, but support will be dropped in a future version. Use `as.mo()` on your old codes to transform them to the new format. Using functions from the `mo_*` family (like `mo_name()` and `mo_gramstain()`) on old codes, will throw a warning. +* More intelligent guessing for `as.ab()` * Renamed data set `septic_patients` to `example_isolates` * Function `eucast_rules()`: * Fixed a bug for *Yersinia pseudotuberculosis* diff --git a/R/ab.R b/R/ab.R index 2a61333d..2dd16249 100755 --- a/R/ab.R +++ b/R/ab.R @@ -23,6 +23,7 @@ #' #' Use this function to determine the antibiotic code of one or more antibiotics. The data set \code{\link{antibiotics}} will be searched for abbreviations, official names and synonyms (brand names). #' @param x character vector to determine to antibiotic ID +#' @param ... arguments passed on to internal functions #' @rdname as.ab #' @keywords atc #' @inheritSection WHOCC WHOCC @@ -57,7 +58,7 @@ #' # they use as.ab() internally: #' ab_name("J01FA01") # "Erythromycin" #' ab_name("eryt") # "Erythromycin" -as.ab <- function(x) { +as.ab <- function(x, ...) { if (is.ab(x)) { return(x) } @@ -69,6 +70,9 @@ as.ab <- function(x) { } x_bak <- x + # remove diacritics + x <- iconv(x, from = "UTF-8", to = "ASCII//TRANSLIT") + x <- gsub('"', "", x, fixed = TRUE) # remove suffices x_bak_clean <- gsub("_(mic|rsi|dis[ck])$", "", x, ignore.case = TRUE) # remove disk concentrations, like LVX_NM -> LVX @@ -76,9 +80,15 @@ as.ab <- function(x) { # remove part between brackets if that's followed by another string x_bak_clean <- gsub("(.*)+ [(].*[)]", "\\1", x_bak_clean) # keep only a-Z, 0-9, space, slash and dash - x_bak_clean <- gsub("[^A-Z0-9 /-]", "", x_bak_clean, ignore.case = TRUE) + # x_bak_clean <- gsub("[^A-Z0-9 /-]", "", x_bak_clean, ignore.case = TRUE) # keep only max 1 space x_bak_clean <- trimws(gsub(" +", " ", x_bak_clean, ignore.case = TRUE)) + # non-character, space or number should be a slash + x_bak_clean <- gsub("[^A-Za-z0-9 ]", "/", x_bak_clean) + # spaces around non-characters must be removed: amox + clav -> amox/clav + x_bak_clean <- gsub("(.*[a-zA-Z0-9]) ([^a-zA-Z0-9].*)", "\\1\\2", x_bak_clean) + x_bak_clean <- gsub("(.*[^a-zA-Z0-9]) ([a-zA-Z0-9].*)", "\\1\\2", x_bak_clean) + x <- unique(x_bak_clean) x_new <- rep(NA_character_, length(x)) x_unknown <- character(0) @@ -181,6 +191,7 @@ as.ab <- function(x) { x_spelling <- gsub("(o\\+n|o\\+ne\\+)$", "o+ne*", x_spelling) # replace multiple same characters to single one with '+', like "ll" -> "l+" x_spelling <- gsub("(.)\\1+", "\\1+", x_spelling) + # try if name starts with it found <- AMR::antibiotics[which(AMR::antibiotics$name %like% paste0("^", x_spelling)),]$ab if (length(found) > 0) { @@ -217,7 +228,44 @@ as.ab <- function(x) { next } } - + + if (!isFALSE(list(...)$initial_search)) { + # transform back from other languages and try again + x_translated <- paste(lapply(strsplit(x[i], "[^a-zA-Z0-9 ]"), + function(y) { + for (i in 1:length(y)) { + y[i] <- ifelse(tolower(y[i]) %in% tolower(translations_file$replacement), + translations_file[which(tolower(translations_file$replacement) == tolower(y[i]) & + !isFALSE(translations_file$fixed)), "pattern"], + y[i]) + } + y + })[[1]], + collapse = "/") + x_translated_guess <- suppressWarnings(as.ab(x_translated, initial_search = FALSE)) + if (!is.na(x_translated_guess)) { + x_new[i] <- x_translated_guess + next + } + # now also try to coerce brandname combinations like "Amoxy/clavulanic acid" + x_translated <- paste(lapply(strsplit(x_translated, "[^a-zA-Z0-9 ]"), + function(y) { + for (i in 1:length(y)) { + y_name <- suppressWarnings(ab_name(y[i], language = NULL, initial_search = FALSE)) + y[i] <- ifelse(!is.na(y_name), + y_name, + y[i]) + } + y + })[[1]], + collapse = "/") + x_translated_guess <- suppressWarnings(as.ab(x_translated, initial_search = FALSE)) + if (!is.na(x_translated_guess)) { + x_new[i] <- x_translated_guess + next + } + } + # not found x_unknown <- c(x_unknown, x_bak[x[i] == x_bak_clean][1]) } diff --git a/R/ab_property.R b/R/ab_property.R index 15246f17..614ab3ec 100644 --- a/R/ab_property.R +++ b/R/ab_property.R @@ -188,7 +188,7 @@ ab_validate <- function(x, property, ...) { error = function(e) stop(e$message, call. = FALSE)) if (!all(x %in% AMR::antibiotics[, property])) { - x <- data.frame(ab = AMR::as.ab(x), stringsAsFactors = FALSE) %>% + x <- data.frame(ab = AMR::as.ab(x, ...), stringsAsFactors = FALSE) %>% left_join(AMR::antibiotics, by = "ab") %>% pull(property) } diff --git a/R/availability.R b/R/availability.R index 7a830d55..a5df554f 100644 --- a/R/availability.R +++ b/R/availability.R @@ -27,7 +27,7 @@ #' @details The function returns a \code{data.frame} with columns \code{"resistant"} and \code{"visual_resistance"}. The values in that columns are calculated with \code{\link{portion_R}}. #' @return \code{data.frame} with column names of \code{tbl} as row names #' @inheritSection AMR Read more on our website! -#' @importFrom clean percentage +# @importFrom clean percentage #' @export #' @examples #' availability(example_isolates) diff --git a/R/bug_drug_combinations.R b/R/bug_drug_combinations.R index 088d58b3..1fd726a3 100644 --- a/R/bug_drug_combinations.R +++ b/R/bug_drug_combinations.R @@ -33,7 +33,7 @@ #' @inheritParams base::formatC #' @importFrom dplyr %>% rename group_by select mutate filter pull #' @importFrom tidyr spread -#' @importFrom clean freq percentage +# @importFrom clean freq percentage #' @details The function \code{format} calculates the resistance per bug-drug combination. Use \code{combine_IR = FALSE} (default) to test R vs. S+I and \code{combine_IR = TRUE} to test R+I vs. S. #' #' The language of the output can be overwritten with \code{options(AMR_locale)}, please see \link{translate}. diff --git a/R/first_isolate.R b/R/first_isolate.R index 9b4becd3..3e2aa3d9 100755 --- a/R/first_isolate.R +++ b/R/first_isolate.R @@ -75,7 +75,7 @@ #' @export #' @importFrom dplyr arrange_at lag between row_number filter mutate arrange pull ungroup #' @importFrom crayon blue bold silver -#' @importFrom clean percentage +# @importFrom clean percentage #' @return Logical vector #' @source Methodology of this function is based on: \strong{M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 4th Edition}, 2014, \emph{Clinical and Laboratory Standards Institute (CLSI)}. \url{https://clsi.org/standards/products/microbiology/documents/m39/}. #' @inheritSection AMR Read more on our website! diff --git a/R/freq.R b/R/freq.R index 62aa56f7..120b9697 100755 --- a/R/freq.R +++ b/R/freq.R @@ -25,7 +25,8 @@ clean::freq #' @exportMethod freq.mo #' @importFrom dplyr n_distinct -#' @importFrom clean freq.default percentage +#' @importFrom clean freq.default +# @importFrom clean percentage #' @export #' @noRd freq.mo <- function(x, ...) { diff --git a/R/ggplot_rsi.R b/R/ggplot_rsi.R index cfb1ec5d..fca3c869 100755 --- a/R/ggplot_rsi.R +++ b/R/ggplot_rsi.R @@ -337,7 +337,7 @@ facet_rsi <- function(facet = c("interpretation", "antibiotic"), nrow = NULL) { } #' @rdname ggplot_rsi -#' @importFrom clean percentage +# @importFrom clean percentage #' @export scale_y_percent <- function(breaks = seq(0, 1, 0.1), limits = NULL) { stopifnot_installed_package("ggplot2") @@ -387,7 +387,7 @@ theme_rsi <- function() { #' @rdname ggplot_rsi #' @importFrom dplyr mutate %>% group_by_at -#' @importFrom clean percentage +# @importFrom clean percentage #' @export labels_rsi_count <- function(position = NULL, x = "antibiotic", diff --git a/R/misc.R b/R/misc.R index 70753c68..3408f1ee 100755 --- a/R/misc.R +++ b/R/misc.R @@ -127,3 +127,45 @@ class_integrity_check <- function(value, type, check_vector) { } value } + + + + +# Percentages ------------------------------------------------------------- +# Can all be removed when clean 1.2.0 is on CRAN + +getdecimalplaces <- function(x, minimum = 0, maximum = 3) { + if (maximum < minimum) { + maximum <- minimum + } + if (minimum > maximum) { + minimum <- maximum + } + max_places <- max(unlist(lapply(strsplit(sub('0+$', '', + as.character(x * 100)), ".", fixed = TRUE), + function(y) ifelse(length(y) == 2, nchar(y[2]), 0))), na.rm = TRUE) + max(min(max_places, + maximum, na.rm = TRUE), + minimum, na.rm = TRUE) +} + +round2 <- function(x, digits = 0, force_zero = TRUE) { + # https://stackoverflow.com/a/12688836/4575331 + val <- (trunc((abs(x) * 10 ^ digits) + 0.5) / 10 ^ digits) * sign(x) + if (digits > 0 & force_zero == TRUE) { + val[val != as.integer(val)] <- paste0(val[val != as.integer(val)], + strrep("0", max(0, digits - nchar(gsub(".*[.](.*)$", "\\1", val[val != as.integer(val)]))))) + } + val +} + +percentage <- function(x, digits = NULL, ...) { + if (is.null(digits)) { + digits <- getdecimalplaces(x, minimum = 0, maximum = 1) + } + # round right: percentage(0.4455) should return "44.6%", not "44.5%" + x <- as.numeric(round2(x, digits = digits + 2)) + x_formatted <- format(as.double(x) * 100, scientific = FALSE, digits = digits, nsmall = digits, ...) + x_formatted[!is.na(x)] <- paste0(x_formatted[!is.na(x)], "%") + x_formatted +} diff --git a/R/mo.R b/R/mo.R index a712f6bd..d4f8ca1a 100755 --- a/R/mo.R +++ b/R/mo.R @@ -268,7 +268,7 @@ is.mo <- function(x) { #' @importFrom dplyr %>% pull left_join n_distinct progress_estimated filter distinct #' @importFrom data.table data.table as.data.table setkey #' @importFrom crayon magenta red blue silver italic -#' @importFrom clean percentage +# @importFrom clean percentage # param property a column name of AMR::microorganisms # param initial_search logical - is FALSE when coming from uncertain tries, which uses exec_as.mo internally too # param dyslexia_mode logical - also check for characters that resemble others diff --git a/R/portion.R b/R/portion.R index bffd5ed0..7357eb32 100755 --- a/R/portion.R +++ b/R/portion.R @@ -26,7 +26,7 @@ #' \code{portion_R} and \code{portion_IR} can be used to calculate resistance, \code{portion_S} and \code{portion_SI} can be used to calculate susceptibility.\cr #' @param ... one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with \code{\link{as.rsi}} if needed. Use multiple columns to calculate (the lack of) co-resistance: the probability where one of two drugs have a resistant or susceptible result. See Examples. #' @param minimum the minimum allowed number of available (tested) isolates. Any isolate count lower than \code{minimum} will return \code{NA} with a warning. The default number of \code{30} isolates is advised by the Clinical and Laboratory Standards Institute (CLSI) as best practice, see Source. -#' @param as_percent a logical to indicate whether the output must be returned as a hundred fold with \% sign (a character) using\code{\link[clean]{percentage}}. A value of \code{0.123456} will then be returned as \code{"12.3\%"}. +#' @param as_percent a logical to indicate whether the output must be returned as a hundred fold with \% sign (a character). A value of \code{0.123456} will then be returned as \code{"12.3\%"}. #' @param only_all_tested (for combination therapies, i.e. using more than one variable for \code{...}) a logical to indicate that isolates must be tested for all antibiotics, see section \emph{Combination therapy} below #' @param data a \code{data.frame} containing columns with class \code{rsi} (see \code{\link{as.rsi}}) #' @param translate_ab a column name of the \code{\link{antibiotics}} data set to translate the antibiotic abbreviations to, using \code{\link{ab_property}} diff --git a/R/rsi_calc.R b/R/rsi_calc.R index 0947eef4..673fbcc6 100755 --- a/R/rsi_calc.R +++ b/R/rsi_calc.R @@ -39,7 +39,7 @@ dots2vars <- function(...) { } #' @importFrom dplyr %>% pull all_vars any_vars filter_all funs mutate_all -#' @importFrom clean percentage +# @importFrom clean percentage rsi_calc <- function(..., ab_result, minimum = 0, diff --git a/data/antibiotics.rda b/data/antibiotics.rda index aef6b59d86442c96aff435426a0b085a0da5618c..169e04d2487baafd73a95e3c14c7a9a53827a01b 100755 GIT binary patch delta 34375 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 diff --git a/docs/404.html b/docs/404.html index 74fd8376..5df817b2 100644 --- a/docs/404.html +++ b/docs/404.html @@ -84,7 +84,7 @@ AMR (for R) - 0.7.1.9091 + 0.7.1.9092 diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index 8d0f7a2c..d13acc85 100644 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -84,7 +84,7 @@ AMR (for R) - 0.7.1.9091 + 0.7.1.9092 diff --git a/docs/articles/index.html b/docs/articles/index.html index d29c7f1c..b5bbc7ce 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -84,7 +84,7 @@ AMR (for R) - 0.7.1.9091 + 0.7.1.9092 diff --git a/docs/authors.html b/docs/authors.html index 5a58e51a..106d680b 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -84,7 +84,7 @@ AMR (for R) - 0.7.1.9091 + 0.7.1.9092 diff --git a/docs/index.html b/docs/index.html index c4a8c384..68a074cc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -43,7 +43,7 @@ AMR (for R) - 0.7.1.9091 + 0.7.1.9092 diff --git a/docs/news/index.html b/docs/news/index.html index dd2a53ef..ddf79212 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -84,7 +84,7 @@ AMR (for R) - 0.7.1.9091 + 0.7.1.9092 @@ -231,11 +231,11 @@ -
+

-AMR 0.7.1.9091 Unreleased +AMR 0.7.1.9092 Unreleased

-

Last updated: 30-Sep-2019

+

Last updated: 04-Oct-2019

Breaking

@@ -336,6 +336,8 @@ Since this is a major change, usage of the old also_single_tested w
  • Changed most microorganism IDs to improve readability. For example, the old code B_ENTRC_FAE could have been both E. faecalis and E. faecium. Its new code is B_ENTRC_FCLS and E. faecium has become B_ENTRC_FACM. Also, the Latin character æ (ae) is now preserved at the start of each genus and species abbreviation. For example, the old code for Aerococcus urinae was B_ARCCC_NAE. This is now B_AERCC_URIN. IMPORTANT: Old microorganism IDs are still supported, but support will be dropped in a future version. Use as.mo() on your old codes to transform them to the new format. Using functions from the mo_* family (like mo_name() and mo_gramstain()) on old codes, will throw a warning.
  • +
  • More intelligent guessing for as.ab() +
  • Renamed data set septic_patients to example_isolates
  • Function eucast_rules(): @@ -1288,7 +1290,7 @@ Using as.mo(..., allow_uncertain = 3)

    Contents

  • @@ -189,7 +194,6 @@ - -
    +
    @@ -229,15 +234,13 @@
    -

    Use this function to determine the antibiotic code of one or more antibiotics. The data set antibiotics will be searched for abbreviations, official names and synonyms (brand names).

    -
    -
    as.ab(x)
    +    
    as.ab(x, ...)
     
     is.ab(x)
    - +

    Arguments

    @@ -245,46 +248,46 @@ + + + +
    x

    character vector to determine to antibiotic ID

    ...

    arguments passed on to internal functions

    - +

    Value

    Character (vector) with class "ab". Unknown values will return NA.

    -

    Details

    All entries in the antibiotics data set have three different identifiers: a human readable EARS-Net code (column ab, used by ECDC and WHONET), an ATC code (column atc, used by WHO), and a CID code (column cid, Compound ID, used by PubChem). The data set contains more than 5,000 official brand names from many different countries, as found in PubChem.

    Use the ab_property functions to get properties based on the returned antibiotic ID, see Examples.

    -

    Source

    -

    World Health Organization (WHO) Collaborating Centre for Drug Statistics Methodology: https://www.whocc.no/atc_ddd_index/

    + +

    World Health Organization (WHO) Collaborating Centre for Drug Statistics Methodology: https://www.whocc.no/atc_ddd_index/

    WHONET 2019 software: http://www.whonet.org/software.html

    European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: http://ec.europa.eu/health/documents/community-register/html/atc.htm

    -

    WHOCC

    -


    + +


    This package contains all ~450 antimicrobial drugs and their Anatomical Therapeutic Chemical (ATC) codes, ATC groups and Defined Daily Dose (DDD) from the World Health Organization Collaborating Centre for Drug Statistics Methodology (WHOCC, https://www.whocc.no) and the Pharmaceuticals Community Register of the European Commission (http://ec.europa.eu/health/documents/community-register/html/atc.htm).

    These have become the gold standard for international drug utilisation monitoring and research.

    The WHOCC is located in Oslo at the Norwegian Institute of Public Health and funded by the Norwegian government. The European Commission is the executive of the European Union and promotes its general interest.

    NOTE: The WHOCC copyright does not allow use for commercial purposes, unlike any other info from this package. See https://www.whocc.no/copyright_disclaimer/.

    -

    Read more on our website!

    -

    On our website https://msberends.gitlab.io/AMR you can find a tutorial about how to conduct AMR analysis, the complete documentation of all functions (which reads a lot easier than here in R) and an example analysis using WHONET data.

    - + +

    On our website https://msberends.gitlab.io/AMR you can find a tutorial about how to conduct AMR analysis, the complete documentation of all functions (which reads a lot easier than here in R) and an example analysis using WHONET data.

    See also

    antibiotics for the dataframe that is being used to determine ATCs.

    -

    Examples

    -
    # NOT RUN {
    -# These examples all return "ERY", the ID of Erythromycin:
    +    
    # These examples all return "ERY", the ID of Erythromycin:
     as.ab("J01FA01")
     as.ab("J 01 FA 01")
     as.ab("Erythromycin")
    @@ -299,40 +302,34 @@ This package contains all ~450 antimicrobial drugs and their An
     # Use ab_* functions to get a specific properties (see ?ab_property);
     # they use as.ab() internally:
     ab_name("J01FA01")    # "Erythromycin"
    -ab_name("eryt")       # "Erythromycin"
    -# }
    +ab_name("eryt") # "Erythromycin"
    + @@ -355,6 +352,8 @@ This package contains all ~450 antimicrobial drugs and their An + + diff --git a/docs/reference/index.html b/docs/reference/index.html index 9bcad9df..d330c5a6 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -84,7 +84,7 @@ AMR (for R) - 0.7.1.9091 + 0.7.1.9092 diff --git a/docs/reference/portion.html b/docs/reference/portion.html index b40651ae..1c87d2e8 100644 --- a/docs/reference/portion.html +++ b/docs/reference/portion.html @@ -86,7 +86,7 @@ portion_R and portion_IR can be used to calculate resistance, portion_S and port AMR (for R) - 0.7.1.9091 + 0.7.1.9092 @@ -275,7 +275,7 @@ portion_R and portion_IR can be used to calculate resistance, portion_S and port as_percent -

    a logical to indicate whether the output must be returned as a hundred fold with % sign (a character) usingpercentage. A value of 0.123456 will then be returned as "12.3%".

    +

    a logical to indicate whether the output must be returned as a hundred fold with % sign (a character). A value of 0.123456 will then be returned as "12.3%".

    only_all_tested diff --git a/man/as.ab.Rd b/man/as.ab.Rd index 6c2b735a..ab111a78 100644 --- a/man/as.ab.Rd +++ b/man/as.ab.Rd @@ -5,12 +5,14 @@ \alias{is.ab} \title{Transform to antibiotic ID} \usage{ -as.ab(x) +as.ab(x, ...) is.ab(x) } \arguments{ \item{x}{character vector to determine to antibiotic ID} + +\item{...}{arguments passed on to internal functions} } \value{ Character (vector) with class \code{"ab"}. Unknown values will return \code{NA}. diff --git a/man/portion.Rd b/man/portion.Rd index f81d52c9..eedfb654 100644 --- a/man/portion.Rd +++ b/man/portion.Rd @@ -44,7 +44,7 @@ rsi_df(data, translate_ab = "name", language = get_locale(), \item{minimum}{the minimum allowed number of available (tested) isolates. Any isolate count lower than \code{minimum} will return \code{NA} with a warning. The default number of \code{30} isolates is advised by the Clinical and Laboratory Standards Institute (CLSI) as best practice, see Source.} -\item{as_percent}{a logical to indicate whether the output must be returned as a hundred fold with \% sign (a character) using\code{\link[clean]{percentage}}. A value of \code{0.123456} will then be returned as \code{"12.3\%"}.} +\item{as_percent}{a logical to indicate whether the output must be returned as a hundred fold with \% sign (a character). A value of \code{0.123456} will then be returned as \code{"12.3\%"}.} \item{only_all_tested}{(for combination therapies, i.e. using more than one variable for \code{...}) a logical to indicate that isolates must be tested for all antibiotics, see section \emph{Combination therapy} below} diff --git a/tests/testthat/test-ab.R b/tests/testthat/test-ab.R index 11354ac7..9fff9f13 100755 --- a/tests/testthat/test-ab.R +++ b/tests/testthat/test-ab.R @@ -53,6 +53,9 @@ test_that("as.ab works", { expect_equal(suppressWarnings(as.character(as.ab(c("Bacteria", "Bacterial")))), c(NA, "TMP")) + + expect_equal(as.character(as.ab("Amoxy + clavulaanzuur")), + "AMC") # assigning and subsetting x <- antibiotics$ab diff --git a/tests/testthat/test-misc.R b/tests/testthat/test-misc.R index 8702b1ab..9eeec400 100755 --- a/tests/testthat/test-misc.R +++ b/tests/testthat/test-misc.R @@ -21,6 +21,16 @@ context("misc.R") +test_that("percentages works", { + expect_equal(percentage(0.25), "25%") + expect_equal(percentage(0.5), "50%") + expect_equal(percentage(0.500, digits = 1), "50.0%") + expect_equal(percentage(0.1234), "12.3%") + # round up 0.5 + expect_equal(percentage(0.0054), "0.5%") + expect_equal(percentage(0.0055), "0.6%") +}) + test_that("functions missing in older R versions work", { expect_equal(strrep("A", 5), "AAAAA") expect_equal(strrep(c("A", "B"), c(5, 2)), c("AAAAA", "BB"))