mirror of https://github.com/msberends/AMR.git
55 lines
2.5 KiB
R
55 lines
2.5 KiB
R
# ==================================================================== #
|
|
# TITLE #
|
|
# Antimicrobial Resistance (AMR) Analysis #
|
|
# #
|
|
# AUTHORS #
|
|
# Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl) #
|
|
# #
|
|
# LICENCE #
|
|
# This program is free software; you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License version 2.0, #
|
|
# as published by the Free Software Foundation. #
|
|
# #
|
|
# This program is distributed in the hope that it will be useful, #
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
|
# GNU General Public License for more details. #
|
|
# ==================================================================== #
|
|
|
|
#' Count cases with antimicrobial results
|
|
#'
|
|
#' This counts all cases where antimicrobial interpretations are available. Its use is equal to \code{\link{n_distinct}}.
|
|
#' @param ab1,ab2 vector of antibiotic interpretations, they will be transformed internally with \code{\link{as.rsi}} if needed
|
|
#' @export
|
|
#' @seealso The \code{\link{portion}} functions to calculate resistance and susceptibility.
|
|
#' @examples
|
|
#' library(dplyr)
|
|
#'
|
|
#' septic_patients %>%
|
|
#' group_by(hospital_id) %>%
|
|
#' summarise(cipro_p = portion_S(cipr, as_percent = TRUE),
|
|
#' cipro_n = n_rsi(cipr),
|
|
#' genta_p = portion_S(gent, as_percent = TRUE),
|
|
#' genta_n = n_rsi(gent),
|
|
#' combination_p = portion_S(cipr, gent, as_percent = TRUE),
|
|
#' combination_n = n_rsi(cipr, gent))
|
|
n_rsi <- function(ab1, ab2 = NULL) {
|
|
if (NCOL(ab1) > 1) {
|
|
stop('`ab1` must be a vector of antimicrobial interpretations', call. = FALSE)
|
|
}
|
|
if (!is.rsi(ab1)) {
|
|
ab1 <- as.rsi(ab1)
|
|
}
|
|
if (!is.null(ab2)) {
|
|
if (NCOL(ab2) > 1) {
|
|
stop('`ab2` must be a vector of antimicrobial interpretations', call. = FALSE)
|
|
}
|
|
if (!is.rsi(ab2)) {
|
|
ab2 <- as.rsi(ab2)
|
|
}
|
|
sum(!is.na(ab1) & !is.na(ab2))
|
|
} else {
|
|
sum(!is.na(ab1))
|
|
}
|
|
}
|