mirror of
https://github.com/msberends/AMR.git
synced 2024-12-27 10:46:12 +01:00
Compare commits
2 Commits
27f084d819
...
1a88caa119
Author | SHA1 | Date | |
---|---|---|---|
1a88caa119 | |||
1ba44776a1 |
@ -1,6 +1,6 @@
|
|||||||
Package: AMR
|
Package: AMR
|
||||||
Version: 1.5.0.9007
|
Version: 1.5.0.9009
|
||||||
Date: 2021-01-18
|
Date: 2021-01-22
|
||||||
Title: Antimicrobial Resistance Analysis
|
Title: Antimicrobial Resistance Analysis
|
||||||
Authors@R: c(
|
Authors@R: c(
|
||||||
person(role = c("aut", "cre"),
|
person(role = c("aut", "cre"),
|
||||||
|
@ -22,6 +22,7 @@ S3method("[[<-",isolate_identifier)
|
|||||||
S3method("[[<-",mic)
|
S3method("[[<-",mic)
|
||||||
S3method("[[<-",mo)
|
S3method("[[<-",mo)
|
||||||
S3method("[[<-",rsi)
|
S3method("[[<-",rsi)
|
||||||
|
S3method(all.equal,isolate_identifier)
|
||||||
S3method(as.data.frame,ab)
|
S3method(as.data.frame,ab)
|
||||||
S3method(as.data.frame,mo)
|
S3method(as.data.frame,mo)
|
||||||
S3method(as.double,mic)
|
S3method(as.double,mic)
|
||||||
|
8
NEWS.md
8
NEWS.md
@ -1,5 +1,5 @@
|
|||||||
# AMR 1.5.0.9007
|
# AMR 1.5.0.9009
|
||||||
## <small>Last updated: 18 January 2021</small>
|
## <small>Last updated: 22 January 2021</small>
|
||||||
|
|
||||||
### New
|
### New
|
||||||
* Support for EUCAST Clinical Breakpoints v11.0 (2021), effective in the `eucast_rules()` function and in `as.rsi()` to interpret MIC and disk diffusion values. This is now the default guideline in this package.
|
* Support for EUCAST Clinical Breakpoints v11.0 (2021), effective in the `eucast_rules()` function and in `as.rsi()` to interpret MIC and disk diffusion values. This is now the default guideline in this package.
|
||||||
@ -32,10 +32,12 @@
|
|||||||
* Updated the data set `microorganisms.codes` (which contains popular LIS and WHONET codes for microorganisms) for some species of *Mycobacterium* that previously incorrectly returned *M. africanum*
|
* Updated the data set `microorganisms.codes` (which contains popular LIS and WHONET codes for microorganisms) for some species of *Mycobacterium* that previously incorrectly returned *M. africanum*
|
||||||
* Added Pretomanid (PMD, J04AK08) to the `antibiotics` data set
|
* Added Pretomanid (PMD, J04AK08) to the `antibiotics` data set
|
||||||
* WHONET code `"PNV"` will now correctly be interpreted as `PHN`, the antibiotic code for phenoxymethylpenicillin ('peni V')
|
* WHONET code `"PNV"` will now correctly be interpreted as `PHN`, the antibiotic code for phenoxymethylpenicillin ('peni V')
|
||||||
* Fix for verbose output of `mdro(..., verbose = TRUE)` for German guideline (3MGRN and 4MGRN) and *P. aeruginosa* in Dutch guideline (BRMO)
|
* Fix for verbose output of `mdro(..., verbose = TRUE)` for German guideline (3MGRN and 4MGRN) and Dutch guideline (BRMO, only *P. aeruginosa*)
|
||||||
|
* `is.rsi.eligible()` now returns `FALSE` immediately if the input does not contain any of the values "R", "S" or "I". This drastically improves speed, also for a lot of other functions that rely on automatic determination of antibiotic columns.
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
* Big documentation updates
|
* Big documentation updates
|
||||||
|
* Loading the package (i.e., `library(AMR)`) now is ~50 times faster than before
|
||||||
|
|
||||||
|
|
||||||
# AMR 1.5.0
|
# AMR 1.5.0
|
||||||
|
@ -479,10 +479,13 @@ format_class <- function(class, plural) {
|
|||||||
if ("matrix" %in% class) {
|
if ("matrix" %in% class) {
|
||||||
class <- "a matrix"
|
class <- "a matrix"
|
||||||
}
|
}
|
||||||
if (any(c("mo", "ab", "rsi", "disk", "mic") %in% class)) {
|
if ("isolate_identifier" %in% class) {
|
||||||
class <- paste0("a class <", class[1L], ">")
|
class <- "created with isolate_identifier()"
|
||||||
}
|
}
|
||||||
class[class == class.bak] <- paste0("a class <", class[class == class.bak], ">")
|
if (any(c("mo", "ab", "rsi", "disk", "mic") %in% class)) {
|
||||||
|
class <- paste0("of class <", class[1L], ">")
|
||||||
|
}
|
||||||
|
class[class == class.bak] <- paste0("of class <", class[class == class.bak], ">")
|
||||||
# output
|
# output
|
||||||
vector_or(class, quotes = FALSE)
|
vector_or(class, quotes = FALSE)
|
||||||
}
|
}
|
||||||
@ -514,7 +517,7 @@ meet_criteria <- function(object,
|
|||||||
if (!is.null(allow_class)) {
|
if (!is.null(allow_class)) {
|
||||||
stop_ifnot(inherits(object, allow_class), "argument `", obj_name,
|
stop_ifnot(inherits(object, allow_class), "argument `", obj_name,
|
||||||
"` must be ", format_class(allow_class, plural = isTRUE(has_length > 1)),
|
"` must be ", format_class(allow_class, plural = isTRUE(has_length > 1)),
|
||||||
", not ", format_class(class(object), plural = isTRUE(has_length > 1)),
|
", i.e. not be ", format_class(class(object), plural = isTRUE(has_length > 1)),
|
||||||
call = call_depth)
|
call = call_depth)
|
||||||
# check data.frames for data
|
# check data.frames for data
|
||||||
if (inherits(object, "data.frame")) {
|
if (inherits(object, "data.frame")) {
|
||||||
@ -615,6 +618,7 @@ get_current_data <- function(arg_name, call) {
|
|||||||
NULL
|
NULL
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
vars_df <- tryCatch(frms[[which(!vapply(FUN.VALUE = logical(1), frms, is.null))]], error = function(e) NULL)
|
vars_df <- tryCatch(frms[[which(!vapply(FUN.VALUE = logical(1), frms, is.null))]], error = function(e) NULL)
|
||||||
if (is.data.frame(vars_df)) {
|
if (is.data.frame(vars_df)) {
|
||||||
return(vars_df)
|
return(vars_df)
|
||||||
|
@ -173,7 +173,15 @@ ab_selector <- function(ab_class, function_name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vars_df <- get_current_data(arg_name = NA, call = -3)
|
vars_df <- get_current_data(arg_name = NA, call = -3)
|
||||||
ab_in_data <- get_column_abx(vars_df, info = FALSE)
|
|
||||||
|
# improve speed here so it will only run once when e.g. in one select call
|
||||||
|
if (!identical(pkg_env$ab_selector, unique_call_id())) {
|
||||||
|
ab_in_data <- get_column_abx(vars_df, info = FALSE)
|
||||||
|
pkg_env$ab_selector <- unique_call_id()
|
||||||
|
pkg_env$ab_selector_cols <- ab_in_data
|
||||||
|
} else {
|
||||||
|
ab_in_data <- pkg_env$ab_selector_cols
|
||||||
|
}
|
||||||
|
|
||||||
if (length(ab_in_data) == 0) {
|
if (length(ab_in_data) == 0) {
|
||||||
message_("No antimicrobial agents found.")
|
message_("No antimicrobial agents found.")
|
||||||
@ -199,13 +207,14 @@ ab_selector <- function(ab_class, function_name) {
|
|||||||
} else {
|
} else {
|
||||||
agents_formatted <- paste0("column '", font_bold(agents, collapse = NULL), "'")
|
agents_formatted <- paste0("column '", font_bold(agents, collapse = NULL), "'")
|
||||||
agents_names <- ab_name(names(agents), tolower = TRUE, language = NULL)
|
agents_names <- ab_name(names(agents), tolower = TRUE, language = NULL)
|
||||||
agents_formatted[agents != agents_names] <- paste0(agents_formatted[agents != agents_names],
|
need_name <- tolower(agents) != tolower(agents_names)
|
||||||
" (", agents_names[agents != agents_names], ")")
|
agents_formatted[need_name] <- paste0(agents_formatted[need_name],
|
||||||
|
" (", agents_names[need_name], ")")
|
||||||
message_("Selecting ", ab_group, ": ", paste(agents_formatted, collapse = ", "),
|
message_("Selecting ", ab_group, ": ", paste(agents_formatted, collapse = ", "),
|
||||||
as_note = FALSE,
|
as_note = FALSE,
|
||||||
extra_indent = nchar(paste0("Selecting ", ab_group, ": ")))
|
extra_indent = nchar(paste0("Selecting ", ab_group, ": ")))
|
||||||
}
|
}
|
||||||
remember_thrown_message(function_name)
|
remember_thrown_message(function_name)
|
||||||
}
|
}
|
||||||
unname(agents)
|
unname(agents)
|
||||||
}
|
}
|
||||||
|
@ -1049,6 +1049,7 @@ eucast_rules <- function(x,
|
|||||||
warn_lacking_rsi_class <- unique(warn_lacking_rsi_class)
|
warn_lacking_rsi_class <- unique(warn_lacking_rsi_class)
|
||||||
warning_("Not all columns with antimicrobial results are of class <rsi>. Transform them on beforehand, with e.g.:\n",
|
warning_("Not all columns with antimicrobial results are of class <rsi>. Transform them on beforehand, with e.g.:\n",
|
||||||
" ", x_deparsed, " %>% mutate_if(is.rsi.eligible, as.rsi)\n",
|
" ", x_deparsed, " %>% mutate_if(is.rsi.eligible, as.rsi)\n",
|
||||||
|
" ", x_deparsed, " %>% mutate(across((is.rsi.eligible), as.rsi))\n",
|
||||||
" ", x_deparsed, " %>% as.rsi(", ifelse(length(warn_lacking_rsi_class) == 1,
|
" ", x_deparsed, " %>% as.rsi(", ifelse(length(warn_lacking_rsi_class) == 1,
|
||||||
warn_lacking_rsi_class,
|
warn_lacking_rsi_class,
|
||||||
paste0(warn_lacking_rsi_class[1], ":", warn_lacking_rsi_class[length(warn_lacking_rsi_class)])),
|
paste0(warn_lacking_rsi_class[1], ":", warn_lacking_rsi_class[length(warn_lacking_rsi_class)])),
|
||||||
|
@ -137,25 +137,25 @@ get_column_abx <- function(x,
|
|||||||
} else if (info == TRUE) {
|
} else if (info == TRUE) {
|
||||||
message_("...", appendLF = FALSE, as_note = FALSE)
|
message_("...", appendLF = FALSE, as_note = FALSE)
|
||||||
}
|
}
|
||||||
x_bak <- x
|
|
||||||
# only check columns that are a valid AB code, ATC code, name, abbreviation or synonym,
|
# only check columns that are a valid AB code, ATC code, name, abbreviation or synonym,
|
||||||
# or already have the <rsi> class (as.rsi)
|
# or already have the <rsi> class (as.rsi)
|
||||||
# and that they have no more than 50% invalid values
|
# and that they have no more than 50% invalid values
|
||||||
vectr_antibiotics <- unique(toupper(unlist(antibiotics[, c("ab", "atc", "name", "abbreviations", "synonyms")])))
|
vectr_antibiotics <- unique(toupper(unlist(antibiotics[, c("ab", "atc", "name", "abbreviations", "synonyms")])))
|
||||||
vectr_antibiotics <- vectr_antibiotics[!is.na(vectr_antibiotics) & nchar(vectr_antibiotics) >= 3]
|
vectr_antibiotics <- vectr_antibiotics[!is.na(vectr_antibiotics) & nchar(vectr_antibiotics) >= 3]
|
||||||
x_columns <- vapply(FUN.VALUE = character(1), colnames(x), function(col, df = x_bak) {
|
x_columns <- vapply(FUN.VALUE = character(1), colnames(x), function(col, df = x) {
|
||||||
if (toupper(col) %in% vectr_antibiotics ||
|
if (toupper(col) %in% vectr_antibiotics ||
|
||||||
is.rsi(as.data.frame(df, stringsAsFactors = FALSE)[, col, drop = TRUE]) ||
|
is.rsi(x[, col, drop = TRUE]) ||
|
||||||
is.rsi.eligible(as.data.frame(df, stringsAsFactors = FALSE)[, col, drop = TRUE],
|
is.rsi.eligible(x[, col, drop = TRUE], threshold = 0.5)
|
||||||
threshold = 0.5)) {
|
) {
|
||||||
return(col)
|
return(col)
|
||||||
} else {
|
} else {
|
||||||
return(NA_character_)
|
return(NA_character_)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
x_columns <- x_columns[!is.na(x_columns)]
|
x_columns <- x_columns[!is.na(x_columns)]
|
||||||
x <- x[, x_columns, drop = FALSE] # without drop = TRUE, x will become a vector when x_columns is length 1
|
x <- x[, x_columns, drop = FALSE] # without drop = TRUE, x will become a vector when x_columns is length 1
|
||||||
|
|
||||||
df_trans <- data.frame(colnames = colnames(x),
|
df_trans <- data.frame(colnames = colnames(x),
|
||||||
abcode = suppressWarnings(as.ab(colnames(x), info = FALSE)),
|
abcode = suppressWarnings(as.ab(colnames(x), info = FALSE)),
|
||||||
stringsAsFactors = FALSE)
|
stringsAsFactors = FALSE)
|
||||||
@ -217,7 +217,6 @@ get_column_abx <- function(x,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!is.null(hard_dependencies)) {
|
if (!is.null(hard_dependencies)) {
|
||||||
hard_dependencies <- unique(hard_dependencies)
|
hard_dependencies <- unique(hard_dependencies)
|
||||||
if (!all(hard_dependencies %in% names(x))) {
|
if (!all(hard_dependencies %in% names(x))) {
|
||||||
|
@ -26,9 +26,10 @@
|
|||||||
#' Create Identifier of an Isolate
|
#' Create Identifier of an Isolate
|
||||||
#'
|
#'
|
||||||
#' This function will paste the microorganism code with all antimicrobial results into one string for each row in a data set. This is useful to compare isolates, e.g. between institutions or regions, when there is no genotyping available.
|
#' This function will paste the microorganism code with all antimicrobial results into one string for each row in a data set. This is useful to compare isolates, e.g. between institutions or regions, when there is no genotyping available.
|
||||||
#' @inheritSection lifecycle Maturing Lifecycle
|
#' @inheritSection lifecycle Experimental Lifecycle
|
||||||
#' @inheritParams eucast_rules
|
#' @inheritParams eucast_rules
|
||||||
#' @param cols_ab a character vector of column names of `x`, or (a combination with) an [antibiotic selector function]([ab_class()]), such as [carbapenems()] and [aminoglycosides()]
|
#' @param cols_ab a character vector of column names of `x`, or (a combination with) an [antibiotic selector function]([ab_class()]), such as [carbapenems()] and [aminoglycosides()]
|
||||||
|
#' @rdname isolate_identifier
|
||||||
#' @export
|
#' @export
|
||||||
#' @inheritSection AMR Read more on Our Website!
|
#' @inheritSection AMR Read more on Our Website!
|
||||||
#' @examples
|
#' @examples
|
||||||
@ -43,7 +44,12 @@
|
|||||||
isolate_identifier <- function(x, col_mo = NULL, cols_ab = NULL) {
|
isolate_identifier <- function(x, col_mo = NULL, cols_ab = NULL) {
|
||||||
if (is.null(col_mo)) {
|
if (is.null(col_mo)) {
|
||||||
col_mo <- search_type_in_df(x, "mo")
|
col_mo <- search_type_in_df(x, "mo")
|
||||||
|
if (is.null(col_mo)) {
|
||||||
|
# no column found, then ignore the argument
|
||||||
|
col_mo <- FALSE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isFALSE(col_mo)) {
|
if (isFALSE(col_mo)) {
|
||||||
# is FALSE then ignore mo column
|
# is FALSE then ignore mo column
|
||||||
x$col_mo <- ""
|
x$col_mo <- ""
|
||||||
@ -60,14 +66,83 @@ isolate_identifier <- function(x, col_mo = NULL, cols_ab = NULL) {
|
|||||||
# tryCatch adds 4 calls, so total is -5
|
# tryCatch adds 4 calls, so total is -5
|
||||||
error = function(e) stop_(e$message, call = -5))
|
error = function(e) stop_(e$message, call = -5))
|
||||||
}
|
}
|
||||||
if (length(cols_ab) == 0) {
|
|
||||||
warning_("no columns with antimicrobial agents found", call = TRUE)
|
# cope with empty values
|
||||||
|
if (length(cols_ab) == 0 && all(x[, col_mo, drop = TRUE] == "", na.rm = TRUE)) {
|
||||||
|
warning_("in isolate_identifier(): no column with microorganisms and no columns with antimicrobial agents found", call = FALSE)
|
||||||
|
} else if (length(cols_ab) == 0) {
|
||||||
|
warning_("in isolate_identifier(): no columns with antimicrobial agents found", call = FALSE)
|
||||||
}
|
}
|
||||||
|
|
||||||
out <- x[, c(col_mo, cols_ab), drop = FALSE]
|
out <- x[, c(col_mo, cols_ab), drop = FALSE]
|
||||||
out <- do.call(paste, c(out, sep = ""))
|
out <- do.call(paste, c(out, sep = ""))
|
||||||
out <- gsub("NA", ".", out, fixed = TRUE)
|
out <- gsub("NA", ".", out, fixed = TRUE)
|
||||||
set_clean_class(out, new_class = c("isolate_identifier", "character"))
|
out <- set_clean_class(out, new_class = c("isolate_identifier", "character"))
|
||||||
|
attr(out, "ab") <- cols_ab
|
||||||
|
out
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @method all.equal isolate_identifier
|
||||||
|
#' @inheritParams base::all.equal
|
||||||
|
#' @param ignore_empty_results a logical to indicate whether empty results must be ignored, so that only values R, S and I will be compared
|
||||||
|
#' @rdname isolate_identifier
|
||||||
|
#' @export
|
||||||
|
all.equal.isolate_identifier <- function(target, current, ignore_empty_results = TRUE, ...) {
|
||||||
|
meet_criteria(target, allow_class = "isolate_identifier")
|
||||||
|
meet_criteria(current, allow_class = "isolate_identifier")
|
||||||
|
meet_criteria(ignore_empty_results, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
|
if (isTRUE(all.equal.character(target, current))) {
|
||||||
|
return(TRUE)
|
||||||
|
}
|
||||||
|
# vectorise over both target and current
|
||||||
|
if (length(target) > 1 && length(current) == 1) {
|
||||||
|
current <- rep(current, length(target))
|
||||||
|
} else if (length(current) > 1 && length(target) == 1) {
|
||||||
|
target <- rep(target, length(current))
|
||||||
|
}
|
||||||
|
stop_if(length(target) != length(current),
|
||||||
|
"length of `target` and `current` must be the same, or one must be 1")
|
||||||
|
|
||||||
|
get_vector <- function(x) {
|
||||||
|
if (grepl("|", x, fixed = TRUE)) {
|
||||||
|
mo <- gsub("(.*)\\|.*", "\\1", x)
|
||||||
|
} else {
|
||||||
|
mo <- NULL
|
||||||
|
}
|
||||||
|
if (grepl("|", x, fixed = TRUE)) {
|
||||||
|
ab <- gsub(".*\\|(.*)", "\\1", x)
|
||||||
|
} else {
|
||||||
|
ab <- x
|
||||||
|
}
|
||||||
|
ab <- strsplit(ab, "")[[1L]]
|
||||||
|
if (is.null(mo)) {
|
||||||
|
out <- as.character(ab)
|
||||||
|
names(out) <- attributes(x)$ab
|
||||||
|
} else {
|
||||||
|
out <- as.character(c(mo, ab))
|
||||||
|
names(out) <- c("mo", attributes(x)$ab)
|
||||||
|
}
|
||||||
|
out
|
||||||
|
}
|
||||||
|
|
||||||
|
# run it
|
||||||
|
for (i in seq_len(length(target))) {
|
||||||
|
if (i == 1) {
|
||||||
|
df <- data.frame(object = paste0(c("target[", "current["), i, "]"))
|
||||||
|
}
|
||||||
|
trgt <- get_vector(target[i])
|
||||||
|
crnt <- get_vector(current[i])
|
||||||
|
if (ignore_empty_results == TRUE) {
|
||||||
|
diff <- names(trgt[trgt != crnt & trgt != "." & crnt != "."])
|
||||||
|
} else {
|
||||||
|
diff <- names(trgt[trgt != crnt])
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
stop("THIS FUNCTION IS WORK IN PROGRESS AND NOT AVAILABLE IN THIS BETA VERSION")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#' @method print isolate_identifier
|
#' @method print isolate_identifier
|
||||||
|
23
R/rsi.R
23
R/rsi.R
@ -49,16 +49,16 @@
|
|||||||
#' 2. For **interpreting minimum inhibitory concentration (MIC) values** according to EUCAST or CLSI. You must clean your MIC values first using [as.mic()], that also gives your columns the new data class [`mic`]. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the `mo` argument.
|
#' 2. For **interpreting minimum inhibitory concentration (MIC) values** according to EUCAST or CLSI. You must clean your MIC values first using [as.mic()], that also gives your columns the new data class [`mic`]. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the `mo` argument.
|
||||||
#' * Using `dplyr`, R/SI interpretation can be done very easily with either:
|
#' * Using `dplyr`, R/SI interpretation can be done very easily with either:
|
||||||
#' ```
|
#' ```
|
||||||
#' your_data %>% mutate_if(is.mic, as.rsi) # until dplyr 1.0.0
|
#' your_data %>% mutate_if(is.mic, as.rsi) # until dplyr 1.0.0
|
||||||
#' your_data %>% mutate(across(where(is.mic), as.rsi)) # since dplyr 1.0.0
|
#' your_data %>% mutate(across((is.mic), as.rsi)) # since dplyr 1.0.0
|
||||||
#' ```
|
#' ```
|
||||||
#' * Operators like "<=" will be stripped before interpretation. When using `conserve_capped_values = TRUE`, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (`conserve_capped_values = FALSE`) considers ">2" to be lower than ">=4" and might in this case return "S" or "I".
|
#' * Operators like "<=" will be stripped before interpretation. When using `conserve_capped_values = TRUE`, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (`conserve_capped_values = FALSE`) considers ">2" to be lower than ">=4" and might in this case return "S" or "I".
|
||||||
#'
|
#'
|
||||||
#' 3. For **interpreting disk diffusion diameters** according to EUCAST or CLSI. You must clean your disk zones first using [as.disk()], that also gives your columns the new data class [`disk`]. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the `mo` argument.
|
#' 3. For **interpreting disk diffusion diameters** according to EUCAST or CLSI. You must clean your disk zones first using [as.disk()], that also gives your columns the new data class [`disk`]. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the `mo` argument.
|
||||||
#' * Using `dplyr`, R/SI interpretation can be done very easily with either:
|
#' * Using `dplyr`, R/SI interpretation can be done very easily with either:
|
||||||
#' ```
|
#' ```
|
||||||
#' your_data %>% mutate_if(is.disk, as.rsi) # until dplyr 1.0.0
|
#' your_data %>% mutate_if(is.disk, as.rsi) # until dplyr 1.0.0
|
||||||
#' your_data %>% mutate(across(where(is.disk), as.rsi)) # since dplyr 1.0.0
|
#' your_data %>% mutate(across((is.disk), as.rsi)) # since dplyr 1.0.0
|
||||||
#' ```
|
#' ```
|
||||||
#'
|
#'
|
||||||
#' 4. For **interpreting a complete data set**, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running `as.rsi(data)`.
|
#' 4. For **interpreting a complete data set**, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running `as.rsi(data)`.
|
||||||
@ -133,7 +133,7 @@
|
|||||||
#' if (require("dplyr")) {
|
#' if (require("dplyr")) {
|
||||||
#' df %>% mutate_if(is.mic, as.rsi)
|
#' df %>% mutate_if(is.mic, as.rsi)
|
||||||
#' df %>% mutate_if(function(x) is.mic(x) | is.disk(x), as.rsi)
|
#' df %>% mutate_if(function(x) is.mic(x) | is.disk(x), as.rsi)
|
||||||
#' df %>% mutate(across(where(is.mic), as.rsi))
|
#' df %>% mutate(across((is.mic), as.rsi))
|
||||||
#' df %>% mutate_at(vars(AMP:TOB), as.rsi)
|
#' df %>% mutate_at(vars(AMP:TOB), as.rsi)
|
||||||
#' df %>% mutate(across(AMP:TOB, as.rsi))
|
#' df %>% mutate(across(AMP:TOB, as.rsi))
|
||||||
#'
|
#'
|
||||||
@ -179,7 +179,7 @@
|
|||||||
#'
|
#'
|
||||||
#' # note: from dplyr 1.0.0 on, this will be:
|
#' # note: from dplyr 1.0.0 on, this will be:
|
||||||
#' # example_isolates %>%
|
#' # example_isolates %>%
|
||||||
#' # mutate(across(where(is.rsi.eligible), as.rsi))
|
#' # mutate(across((is.rsi.eligible), as.rsi))
|
||||||
#' }
|
#' }
|
||||||
#' }
|
#' }
|
||||||
as.rsi <- function(x, ...) {
|
as.rsi <- function(x, ...) {
|
||||||
@ -202,14 +202,19 @@ is.rsi.eligible <- function(x, threshold = 0.05) {
|
|||||||
"numeric",
|
"numeric",
|
||||||
"integer",
|
"integer",
|
||||||
"mo",
|
"mo",
|
||||||
|
"ab",
|
||||||
"Date",
|
"Date",
|
||||||
"POSIXct",
|
"POSIXt",
|
||||||
"rsi",
|
"rsi",
|
||||||
"raw",
|
"raw",
|
||||||
"hms")
|
"hms",
|
||||||
|
"mic",
|
||||||
|
"disk")
|
||||||
%in% class(x))) {
|
%in% class(x))) {
|
||||||
# no transformation needed
|
# no transformation needed
|
||||||
FALSE
|
return(FALSE)
|
||||||
|
} else if (!any(c("R", "S", "I") %in% x, na.rm = TRUE)) {
|
||||||
|
return(FALSE)
|
||||||
} else {
|
} else {
|
||||||
x <- x[!is.na(x) & !is.null(x) & !identical(x, "")]
|
x <- x[!is.na(x) & !is.null(x) & !identical(x, "")]
|
||||||
if (length(x) == 0) {
|
if (length(x) == 0) {
|
||||||
|
@ -148,7 +148,9 @@ rsi_calc <- function(...,
|
|||||||
|
|
||||||
if (print_warning == TRUE) {
|
if (print_warning == TRUE) {
|
||||||
if (message_not_thrown_before("rsi_calc")) {
|
if (message_not_thrown_before("rsi_calc")) {
|
||||||
warning_("Increase speed by transforming to class <rsi> on beforehand: your_data %>% mutate_if(is.rsi.eligible, as.rsi)",
|
warning_("Increase speed by transforming to class <rsi> on beforehand:\n",
|
||||||
|
" your_data %>% mutate_if(is.rsi.eligible, as.rsi)\n",
|
||||||
|
" your_data %>% mutate(across((is.rsi.eligible), as.rsi))",
|
||||||
call = FALSE)
|
call = FALSE)
|
||||||
remember_thrown_message("rsi_calc")
|
remember_thrown_message("rsi_calc")
|
||||||
}
|
}
|
||||||
|
BIN
R/sysdata.rda
BIN
R/sysdata.rda
Binary file not shown.
113
R/zzz.R
113
R/zzz.R
@ -28,35 +28,6 @@ pkg_env <- new.env(hash = FALSE)
|
|||||||
pkg_env$mo_failed <- character(0)
|
pkg_env$mo_failed <- character(0)
|
||||||
|
|
||||||
.onLoad <- function(libname, pkgname) {
|
.onLoad <- function(libname, pkgname) {
|
||||||
|
|
||||||
assign(x = "AB_lookup",
|
|
||||||
value = create_AB_lookup(),
|
|
||||||
envir = asNamespace("AMR"))
|
|
||||||
|
|
||||||
assign(x = "MO_lookup",
|
|
||||||
value = create_MO_lookup(),
|
|
||||||
envir = asNamespace("AMR"))
|
|
||||||
|
|
||||||
assign(x = "MO.old_lookup",
|
|
||||||
value = create_MO.old_lookup(),
|
|
||||||
envir = asNamespace("AMR"))
|
|
||||||
|
|
||||||
assign(x = "INTRINSIC_R",
|
|
||||||
value = create_intr_resistance(),
|
|
||||||
envir = asNamespace("AMR"))
|
|
||||||
|
|
||||||
assign(x = "LANGUAGES_SUPPORTED",
|
|
||||||
value = sort(c("en", unique(translations_file$lang))),
|
|
||||||
envir = asNamespace("AMR"))
|
|
||||||
|
|
||||||
assign(x = "MO_CONS",
|
|
||||||
value = create_species_cons_cops("CoNS"),
|
|
||||||
envir = asNamespace("AMR"))
|
|
||||||
|
|
||||||
assign(x = "MO_COPS",
|
|
||||||
value = create_species_cons_cops("CoPS"),
|
|
||||||
envir = asNamespace("AMR"))
|
|
||||||
|
|
||||||
# Support for tibble headers (type_sum) and tibble columns content (pillar_shaft)
|
# Support for tibble headers (type_sum) and tibble columns content (pillar_shaft)
|
||||||
# without the need to depend on other packages. This was suggested by the
|
# without the need to depend on other packages. This was suggested by the
|
||||||
# developers of the vctrs package:
|
# developers of the vctrs package:
|
||||||
@ -102,89 +73,5 @@ pkg_env$mo_failed <- character(0)
|
|||||||
font_bold("options(AMR_silentstart = TRUE)"), "]"))
|
font_bold("options(AMR_silentstart = TRUE)"), "]"))
|
||||||
}
|
}
|
||||||
|
|
||||||
create_intr_resistance <- function() {
|
|
||||||
# for mo_is_intrinsic_resistant() - saves a lot of time when executed on this vector
|
|
||||||
paste(AMR::microorganisms[match(AMR::intrinsic_resistant$microorganism, AMR::microorganisms$fullname), "mo", drop = TRUE],
|
|
||||||
AMR::antibiotics[match(AMR::intrinsic_resistant$antibiotic, AMR::antibiotics$name), "ab", drop = TRUE])
|
|
||||||
}
|
|
||||||
|
|
||||||
create_species_cons_cops <- function(type = c("CoNS", "CoPS")) {
|
|
||||||
# Determination of which staphylococcal species are CoNS/CoPS according to:
|
|
||||||
# - Becker et al. 2014, PMID 25278577
|
|
||||||
# - Becker et al. 2019, PMID 30872103
|
|
||||||
# - Becker et al. 2020, PMID 32056452
|
|
||||||
# this function returns class <mo>
|
|
||||||
MO_staph <- AMR::microorganisms
|
|
||||||
MO_staph <- MO_staph[which(MO_staph$genus == "Staphylococcus"), , drop = FALSE]
|
|
||||||
if (type == "CoNS") {
|
|
||||||
MO_staph[which(MO_staph$species %in% c("coagulase-negative", "argensis", "arlettae",
|
|
||||||
"auricularis", "caeli", "capitis", "caprae",
|
|
||||||
"carnosus", "chromogenes", "cohnii", "condimenti",
|
|
||||||
"debuckii", "devriesei", "edaphicus", "epidermidis",
|
|
||||||
"equorum", "felis", "fleurettii", "gallinarum",
|
|
||||||
"haemolyticus", "hominis", "jettensis", "kloosii",
|
|
||||||
"lentus", "lugdunensis", "massiliensis", "microti",
|
|
||||||
"muscae", "nepalensis", "pasteuri", "petrasii",
|
|
||||||
"pettenkoferi", "piscifermentans", "pseudoxylosus",
|
|
||||||
"rostri", "saccharolyticus", "saprophyticus",
|
|
||||||
"sciuri", "simulans", "stepanovicii", "succinus",
|
|
||||||
"vitulinus", "warneri", "xylosus")
|
|
||||||
| (MO_staph$species == "schleiferi" & MO_staph$subspecies %in% c("schleiferi", ""))),
|
|
||||||
"mo", drop = TRUE]
|
|
||||||
} else if (type == "CoPS") {
|
|
||||||
MO_staph[which(MO_staph$species %in% c("coagulase-positive",
|
|
||||||
"simiae", "agnetis",
|
|
||||||
"delphini", "lutrae",
|
|
||||||
"hyicus", "intermedius",
|
|
||||||
"pseudintermedius", "pseudointermedius",
|
|
||||||
"schweitzeri", "argenteus")
|
|
||||||
| (MO_staph$species == "schleiferi" & MO_staph$subspecies == "coagulans")),
|
|
||||||
"mo", drop = TRUE]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
create_AB_lookup <- function() {
|
|
||||||
AB_lookup <- AMR::antibiotics
|
|
||||||
AB_lookup$generalised_name <- generalise_antibiotic_name(AB_lookup$name)
|
|
||||||
AB_lookup$generalised_synonyms <- lapply(AB_lookup$synonyms, generalise_antibiotic_name)
|
|
||||||
AB_lookup$generalised_abbreviations <- lapply(AB_lookup$abbreviations, generalise_antibiotic_name)
|
|
||||||
AB_lookup$generalised_loinc <- lapply(AB_lookup$loinc, generalise_antibiotic_name)
|
|
||||||
AB_lookup
|
|
||||||
}
|
|
||||||
|
|
||||||
create_MO_lookup <- function() {
|
|
||||||
MO_lookup <- AMR::microorganisms
|
|
||||||
|
|
||||||
MO_lookup$kingdom_index <- NA_real_
|
|
||||||
MO_lookup[which(MO_lookup$kingdom == "Bacteria" | MO_lookup$mo == "UNKNOWN"), "kingdom_index"] <- 1
|
|
||||||
MO_lookup[which(MO_lookup$kingdom == "Fungi"), "kingdom_index"] <- 2
|
|
||||||
MO_lookup[which(MO_lookup$kingdom == "Protozoa"), "kingdom_index"] <- 3
|
|
||||||
MO_lookup[which(MO_lookup$kingdom == "Archaea"), "kingdom_index"] <- 4
|
|
||||||
# all the rest
|
|
||||||
MO_lookup[which(is.na(MO_lookup$kingdom_index)), "kingdom_index"] <- 5
|
|
||||||
|
|
||||||
# use this paste instead of `fullname` to work with Viridans Group Streptococci, etc.
|
|
||||||
MO_lookup$fullname_lower <- tolower(trimws(paste(MO_lookup$genus,
|
|
||||||
MO_lookup$species,
|
|
||||||
MO_lookup$subspecies)))
|
|
||||||
ind <- MO_lookup$genus == "" | grepl("^[(]unknown ", MO_lookup$fullname)
|
|
||||||
MO_lookup[ind, "fullname_lower"] <- tolower(MO_lookup[ind, "fullname"])
|
|
||||||
MO_lookup$fullname_lower <- trimws(gsub("[^.a-z0-9/ \\-]+", "", MO_lookup$fullname_lower, perl = TRUE))
|
|
||||||
|
|
||||||
# add a column with only "e coli" like combinations
|
|
||||||
MO_lookup$g_species <- gsub("^([a-z])[a-z]+ ([a-z]+) ?.*", "\\1 \\2", MO_lookup$fullname_lower, perl = TRUE)
|
|
||||||
|
|
||||||
# so arrange data on prevalence first, then kingdom, then full name
|
|
||||||
MO_lookup[order(MO_lookup$prevalence, MO_lookup$kingdom_index, MO_lookup$fullname_lower), ]
|
|
||||||
}
|
|
||||||
|
|
||||||
create_MO.old_lookup <- function() {
|
|
||||||
MO.old_lookup <- AMR::microorganisms.old
|
|
||||||
MO.old_lookup$fullname_lower <- trimws(gsub("[^.a-z0-9/ \\-]+", "", tolower(trimws(MO.old_lookup$fullname))))
|
|
||||||
|
|
||||||
# add a column with only "e coli"-like combinations
|
|
||||||
MO.old_lookup$g_species <- trimws(gsub("^([a-z])[a-z]+ ([a-z]+) ?.*", "\\1 \\2", MO.old_lookup$fullname_lower))
|
|
||||||
|
|
||||||
# so arrange data on prevalence first, then full name
|
|
||||||
MO.old_lookup[order(MO.old_lookup$prevalence, MO.old_lookup$fullname_lower), ]
|
|
||||||
}
|
|
||||||
|
@ -1 +1 @@
|
|||||||
* Since version 0.3.0 (2018-08-14), CHECK returns a NOTE for having a data directory over 3 MB. This is needed to offer users reference data for the complete taxonomy of microorganisms - one of the most important features of this package.
|
* Ever since one of the first CRAN releases, CHECK returns a NOTE for having a data and R directory over 3 MB. This is needed to offer users reference data for the complete taxonomy of microorganisms - one of the most important features of this package.
|
||||||
|
Binary file not shown.
BIN
data-raw/AMR_1.5.0.9009.tar.gz
Normal file
BIN
data-raw/AMR_1.5.0.9009.tar.gz
Normal file
Binary file not shown.
@ -23,12 +23,108 @@
|
|||||||
# how to conduct AMR analysis: https://msberends.github.io/AMR/ #
|
# how to conduct AMR analysis: https://msberends.github.io/AMR/ #
|
||||||
# ==================================================================== #
|
# ==================================================================== #
|
||||||
|
|
||||||
# Run this file to update the package using: -------------------------------
|
# Run this file to update the package using:
|
||||||
# source("data-raw/internals.R")
|
# source("data-raw/internals.R")
|
||||||
# --------------------------------------------------------------------------
|
|
||||||
|
library(dplyr, warn.conflicts = FALSE)
|
||||||
|
devtools::load_all(quiet = TRUE)
|
||||||
|
|
||||||
|
old_globalenv <- ls(envir = globalenv())
|
||||||
|
|
||||||
|
# Helper functions --------------------------------------------------------
|
||||||
|
|
||||||
|
create_species_cons_cops <- function(type = c("CoNS", "CoPS")) {
|
||||||
|
# Determination of which staphylococcal species are CoNS/CoPS according to:
|
||||||
|
# - Becker et al. 2014, PMID 25278577
|
||||||
|
# - Becker et al. 2019, PMID 30872103
|
||||||
|
# - Becker et al. 2020, PMID 32056452
|
||||||
|
# this function returns class <mo>
|
||||||
|
MO_staph <- AMR::microorganisms
|
||||||
|
MO_staph <- MO_staph[which(MO_staph$genus == "Staphylococcus"), , drop = FALSE]
|
||||||
|
if (type == "CoNS") {
|
||||||
|
MO_staph[which(MO_staph$species %in% c("coagulase-negative", "argensis", "arlettae",
|
||||||
|
"auricularis", "caeli", "capitis", "caprae",
|
||||||
|
"carnosus", "chromogenes", "cohnii", "condimenti",
|
||||||
|
"debuckii", "devriesei", "edaphicus", "epidermidis",
|
||||||
|
"equorum", "felis", "fleurettii", "gallinarum",
|
||||||
|
"haemolyticus", "hominis", "jettensis", "kloosii",
|
||||||
|
"lentus", "lugdunensis", "massiliensis", "microti",
|
||||||
|
"muscae", "nepalensis", "pasteuri", "petrasii",
|
||||||
|
"pettenkoferi", "piscifermentans", "pseudoxylosus",
|
||||||
|
"rostri", "saccharolyticus", "saprophyticus",
|
||||||
|
"sciuri", "simulans", "stepanovicii", "succinus",
|
||||||
|
"vitulinus", "warneri", "xylosus")
|
||||||
|
| (MO_staph$species == "schleiferi" & MO_staph$subspecies %in% c("schleiferi", ""))),
|
||||||
|
"mo", drop = TRUE]
|
||||||
|
} else if (type == "CoPS") {
|
||||||
|
MO_staph[which(MO_staph$species %in% c("coagulase-positive",
|
||||||
|
"simiae", "agnetis",
|
||||||
|
"delphini", "lutrae",
|
||||||
|
"hyicus", "intermedius",
|
||||||
|
"pseudintermedius", "pseudointermedius",
|
||||||
|
"schweitzeri", "argenteus")
|
||||||
|
| (MO_staph$species == "schleiferi" & MO_staph$subspecies == "coagulans")),
|
||||||
|
"mo", drop = TRUE]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
create_AB_lookup <- function() {
|
||||||
|
AB_lookup <- AMR::antibiotics
|
||||||
|
AB_lookup$generalised_name <- generalise_antibiotic_name(AB_lookup$name)
|
||||||
|
AB_lookup$generalised_synonyms <- lapply(AB_lookup$synonyms, generalise_antibiotic_name)
|
||||||
|
AB_lookup$generalised_abbreviations <- lapply(AB_lookup$abbreviations, generalise_antibiotic_name)
|
||||||
|
AB_lookup$generalised_loinc <- lapply(AB_lookup$loinc, generalise_antibiotic_name)
|
||||||
|
AB_lookup
|
||||||
|
}
|
||||||
|
|
||||||
|
create_MO_lookup <- function() {
|
||||||
|
MO_lookup <- AMR::microorganisms
|
||||||
|
|
||||||
|
MO_lookup$kingdom_index <- NA_real_
|
||||||
|
MO_lookup[which(MO_lookup$kingdom == "Bacteria" | MO_lookup$mo == "UNKNOWN"), "kingdom_index"] <- 1
|
||||||
|
MO_lookup[which(MO_lookup$kingdom == "Fungi"), "kingdom_index"] <- 2
|
||||||
|
MO_lookup[which(MO_lookup$kingdom == "Protozoa"), "kingdom_index"] <- 3
|
||||||
|
MO_lookup[which(MO_lookup$kingdom == "Archaea"), "kingdom_index"] <- 4
|
||||||
|
# all the rest
|
||||||
|
MO_lookup[which(is.na(MO_lookup$kingdom_index)), "kingdom_index"] <- 5
|
||||||
|
|
||||||
|
# use this paste instead of `fullname` to work with Viridans Group Streptococci, etc.
|
||||||
|
MO_lookup$fullname_lower <- tolower(trimws(paste(MO_lookup$genus,
|
||||||
|
MO_lookup$species,
|
||||||
|
MO_lookup$subspecies)))
|
||||||
|
ind <- MO_lookup$genus == "" | grepl("^[(]unknown ", MO_lookup$fullname)
|
||||||
|
MO_lookup[ind, "fullname_lower"] <- tolower(MO_lookup[ind, "fullname"])
|
||||||
|
MO_lookup$fullname_lower <- trimws(gsub("[^.a-z0-9/ \\-]+", "", MO_lookup$fullname_lower, perl = TRUE))
|
||||||
|
|
||||||
|
# add a column with only "e coli" like combinations
|
||||||
|
MO_lookup$g_species <- gsub("^([a-z])[a-z]+ ([a-z]+) ?.*", "\\1 \\2", MO_lookup$fullname_lower, perl = TRUE)
|
||||||
|
|
||||||
|
# so arrange data on prevalence first, then kingdom, then full name
|
||||||
|
MO_lookup[order(MO_lookup$prevalence, MO_lookup$kingdom_index, MO_lookup$fullname_lower), ]
|
||||||
|
}
|
||||||
|
|
||||||
|
create_MO.old_lookup <- function() {
|
||||||
|
MO.old_lookup <- AMR::microorganisms.old
|
||||||
|
MO.old_lookup$fullname_lower <- trimws(gsub("[^.a-z0-9/ \\-]+", "", tolower(trimws(MO.old_lookup$fullname))))
|
||||||
|
|
||||||
|
# add a column with only "e coli"-like combinations
|
||||||
|
MO.old_lookup$g_species <- trimws(gsub("^([a-z])[a-z]+ ([a-z]+) ?.*", "\\1 \\2", MO.old_lookup$fullname_lower))
|
||||||
|
|
||||||
|
# so arrange data on prevalence first, then full name
|
||||||
|
MO.old_lookup[order(MO.old_lookup$prevalence, MO.old_lookup$fullname_lower), ]
|
||||||
|
}
|
||||||
|
|
||||||
|
create_intr_resistance <- function() {
|
||||||
|
# for mo_is_intrinsic_resistant() - saves a lot of time when executed on this vector
|
||||||
|
paste(AMR::microorganisms[match(AMR::intrinsic_resistant$microorganism, AMR::microorganisms$fullname), "mo", drop = TRUE],
|
||||||
|
AMR::antibiotics[match(AMR::intrinsic_resistant$antibiotic, AMR::antibiotics$name), "ab", drop = TRUE])
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Save internal data sets to R/sysdata.rda --------------------------------
|
||||||
|
|
||||||
# See 'data-raw/eucast_rules.tsv' for the EUCAST reference file
|
# See 'data-raw/eucast_rules.tsv' for the EUCAST reference file
|
||||||
library(dplyr, warn.conflicts = FALSE)
|
|
||||||
eucast_rules_file <- utils::read.delim(file = "data-raw/eucast_rules.tsv",
|
eucast_rules_file <- utils::read.delim(file = "data-raw/eucast_rules.tsv",
|
||||||
skip = 10,
|
skip = 10,
|
||||||
sep = "\t",
|
sep = "\t",
|
||||||
@ -48,7 +144,7 @@ eucast_rules_file <- utils::read.delim(file = "data-raw/eucast_rules.tsv",
|
|||||||
mutate(reference.rule_group = as.character(reference.rule_group)) %>%
|
mutate(reference.rule_group = as.character(reference.rule_group)) %>%
|
||||||
select(-sorting_rule)
|
select(-sorting_rule)
|
||||||
|
|
||||||
# Translations ----
|
# Translations
|
||||||
translations_file <- utils::read.delim(file = "data-raw/translations.tsv",
|
translations_file <- utils::read.delim(file = "data-raw/translations.tsv",
|
||||||
sep = "\t",
|
sep = "\t",
|
||||||
stringsAsFactors = FALSE,
|
stringsAsFactors = FALSE,
|
||||||
@ -62,23 +158,42 @@ translations_file <- utils::read.delim(file = "data-raw/translations.tsv",
|
|||||||
allowEscapes = TRUE, # else "\\1" will be imported as "\\\\1"
|
allowEscapes = TRUE, # else "\\1" will be imported as "\\\\1"
|
||||||
quote = "")
|
quote = "")
|
||||||
|
|
||||||
# Old microorganism codes -------------------------------------------------
|
# Old microorganism codes
|
||||||
|
|
||||||
microorganisms.translation <- readRDS("data-raw/microorganisms.translation.rds")
|
microorganisms.translation <- readRDS("data-raw/microorganisms.translation.rds")
|
||||||
|
|
||||||
|
# for mo_is_intrinsic_resistant() - saves a lot of time when executed on this vector
|
||||||
|
INTRINSIC_R <- create_intr_resistance()
|
||||||
|
|
||||||
|
# for checking input in `language` argument in e.g. mo_*() and ab_*() functions
|
||||||
|
LANGUAGES_SUPPORTED <- sort(c("en", unique(translations_file$lang)))
|
||||||
|
|
||||||
|
# vectors of CoNS and CoPS, improves speed in as.mo()
|
||||||
|
MO_CONS <- create_species_cons_cops("CoNS")
|
||||||
|
MO_COPS <- create_species_cons_cops("CoPS")
|
||||||
|
|
||||||
|
# reference data - they have additional columns compared to `antibiotics` and `microorganisms` to improve speed
|
||||||
|
AB_lookup <- create_AB_lookup()
|
||||||
|
MO_lookup <- create_MO_lookup()
|
||||||
|
MO.old_lookup <- create_MO.old_lookup()
|
||||||
|
|
||||||
# Export to package as internal data ----
|
# Export to package as internal data ----
|
||||||
usethis::use_data(eucast_rules_file, translations_file, microorganisms.translation,
|
usethis::use_data(eucast_rules_file,
|
||||||
|
translations_file,
|
||||||
|
microorganisms.translation,
|
||||||
|
INTRINSIC_R,
|
||||||
|
LANGUAGES_SUPPORTED,
|
||||||
|
MO_CONS,
|
||||||
|
MO_COPS,
|
||||||
|
AB_lookup,
|
||||||
|
MO_lookup,
|
||||||
|
MO.old_lookup,
|
||||||
internal = TRUE,
|
internal = TRUE,
|
||||||
overwrite = TRUE,
|
overwrite = TRUE,
|
||||||
version = 2,
|
version = 2,
|
||||||
compress = "xz")
|
compress = "xz")
|
||||||
|
|
||||||
# Remove from global environment ----
|
# Export data sets to the repository in different formats -----------------
|
||||||
rm(eucast_rules_file)
|
|
||||||
rm(translations_file)
|
|
||||||
rm(microorganisms.translation)
|
|
||||||
|
|
||||||
# Save to raw data to repository ----
|
|
||||||
write_md5 <- function(object) {
|
write_md5 <- function(object) {
|
||||||
conn <- file(paste0("data-raw/", deparse(substitute(object)), ".md5"))
|
conn <- file(paste0("data-raw/", deparse(substitute(object)), ".md5"))
|
||||||
writeLines(digest::digest(object, "md5"), conn)
|
writeLines(digest::digest(object, "md5"), conn)
|
||||||
@ -93,7 +208,7 @@ changed_md5 <- function(object) {
|
|||||||
}, error = function(e) TRUE)
|
}, error = function(e) TRUE)
|
||||||
}
|
}
|
||||||
usethis::ui_done(paste0("Saving raw data to {usethis::ui_value('/data-raw/')}"))
|
usethis::ui_done(paste0("Saving raw data to {usethis::ui_value('/data-raw/')}"))
|
||||||
devtools::load_all(quiet = TRUE)
|
|
||||||
# give official names to ABs and MOs
|
# give official names to ABs and MOs
|
||||||
rsi <- dplyr::mutate(rsi_translation, ab = ab_name(ab), mo = mo_name(mo))
|
rsi <- dplyr::mutate(rsi_translation, ab = ab_name(ab), mo = mo_name(mo))
|
||||||
if (changed_md5(rsi)) {
|
if (changed_md5(rsi)) {
|
||||||
@ -169,5 +284,7 @@ if (changed_md5(dosage)) {
|
|||||||
try(openxlsx::write.xlsx(dosage, "data-raw/dosage.xlsx"), silent = TRUE)
|
try(openxlsx::write.xlsx(dosage, "data-raw/dosage.xlsx"), silent = TRUE)
|
||||||
}
|
}
|
||||||
|
|
||||||
rm(write_md5)
|
# remove leftovers from global env
|
||||||
rm(changed_md5)
|
current_globalenv <- ls(envir = globalenv())
|
||||||
|
rm(list = current_globalenv[!current_globalenv %in% old_globalenv])
|
||||||
|
rm(current_globalenv)
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="https://msberends.github.io/AMR//index.html">AMR (for R)</a>
|
<a class="navbar-link" href="https://msberends.github.io/AMR//index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9007</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9007</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -193,7 +193,7 @@
|
|||||||
<h1 data-toc-skip>How to import data from SPSS / SAS / Stata</h1>
|
<h1 data-toc-skip>How to import data from SPSS / SAS / Stata</h1>
|
||||||
<h4 class="author">Matthijs S. Berends</h4>
|
<h4 class="author">Matthijs S. Berends</h4>
|
||||||
|
|
||||||
<h4 class="date">29 December 2020</h4>
|
<h4 class="date">22 January 2021</h4>
|
||||||
|
|
||||||
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/master/vignettes/SPSS.Rmd"><code>vignettes/SPSS.Rmd</code></a></small>
|
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/master/vignettes/SPSS.Rmd"><code>vignettes/SPSS.Rmd</code></a></small>
|
||||||
<div class="hidden name"><code>SPSS.Rmd</code></div>
|
<div class="hidden name"><code>SPSS.Rmd</code></div>
|
||||||
@ -228,7 +228,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p><strong>R has a huge community.</strong></p>
|
<p><strong>R has a huge community.</strong></p>
|
||||||
<p>Many R users just ask questions on websites like <a href="https://stackoverflow.com">StackOverflow.com</a>, the largest online community for programmers. At the time of writing, more than <a href="https://stackoverflow.com/questions/tagged/r?sort=votes">360,000 R-related questions</a> have already been asked on this platform (which covers questions and answers for any programming language). In my own experience, most questions are answered within a couple of minutes.</p>
|
<p>Many R users just ask questions on websites like <a href="https://stackoverflow.com">StackOverflow.com</a>, the largest online community for programmers. At the time of writing, <a href="https://stackoverflow.com/questions/tagged/r?sort=votes">383,346 R-related questions</a> 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 minutes.</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p><strong>R understands any data type, including SPSS/SAS/Stata.</strong></p>
|
<p><strong>R understands any data type, including SPSS/SAS/Stata.</strong></p>
|
||||||
@ -243,7 +243,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<p><strong>R is (nowadays) the preferred analysis software in academic papers.</strong></p>
|
<p><strong>R is (nowadays) the preferred analysis software in academic papers.</strong></p>
|
||||||
<p>At present, R is among the world most powerful statistical languages, and it is generally very popular in science (Bollmann <em>et al.</em>, 2017). For all the above reasons, the number of references to R as an analysis method in academic papers <a href="https://r4stats.com/2014/08/20/r-passes-spss-in-scholarly-use-stata-growing-rapidly/">is rising continuously</a> and has even surpassed SPSS for academic use (Muenchen, 2014).</p>
|
<p>At present, R is among the world most powerful statistical languages, and it is generally very popular in science (Bollmann <em>et al.</em>, 2017). For all the above reasons, the number of references to R as an analysis method in academic papers <a href="https://r4stats.com/2014/08/20/r-passes-spss-in-scholarly-use-stata-growing-rapidly/">is rising continuously</a> and has even surpassed SPSS for academic use (Muenchen, 2014).</p>
|
||||||
<p>I believe that the thing with SPSS is, that it has always had a great user interface which is very easy to learn and use. Back when they developed it, they had very little competition, let alone from R. R didn’t even had a professional user interface until the last decade (called RStudio, see below). How people used R between the nineties and 2010 is almost completely incomparable to how R is being used now. The language itself <a href="https://www.tidyverse.org/packages/">has been restyled completely</a> by volunteers who are dedicated professionals in the field of data science. SPSS was great when there was nothing else that could compete. But now in 2020, I don’t see any reason why SPSS would be of any better use than R.</p>
|
<p>I believe that the thing with SPSS is, that it has always had a great user interface which is very easy to learn and use. Back when they developed it, they had very little competition, let alone from R. R didn’t even had a professional user interface until the last decade (called RStudio, see below). How people used R between the nineties and 2010 is almost completely incomparable to how R is being used now. The language itself <a href="https://www.tidyverse.org/packages/">has been restyled completely</a> by volunteers who are dedicated professionals in the field of data science. SPSS was great when there was nothing else that could compete. But now in 2021, I don’t see any reason why SPSS would be of any better use than R.</p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>To demonstrate the first point:</p>
|
<p>To demonstrate the first point:</p>
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9007</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9007</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -24,14 +24,6 @@
|
|||||||
# how to conduct AMR analysis: https://msberends.github.io/AMR/ #
|
# how to conduct AMR analysis: https://msberends.github.io/AMR/ #
|
||||||
# ==================================================================== #
|
# ==================================================================== #
|
||||||
*/
|
*/
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.navbar-default {
|
|
||||||
background-color: #213730;
|
|
||||||
}
|
|
||||||
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
|
|
||||||
background-color: #355951;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* R for Data Science (r4ds) */
|
/* R for Data Science (r4ds) */
|
||||||
#r4ds a {
|
#r4ds a {
|
||||||
@ -209,16 +201,6 @@ thead ~ tbody {
|
|||||||
/* only when it has a header */
|
/* only when it has a header */
|
||||||
border-bottom: 2px solid black;
|
border-bottom: 2px solid black;
|
||||||
}
|
}
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
thead {
|
|
||||||
border-top: 2px solid white;
|
|
||||||
border-bottom: 2px solid white;
|
|
||||||
}
|
|
||||||
thead ~ tbody {
|
|
||||||
/* only when it has a header */
|
|
||||||
border-bottom: 2px solid white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
thead th {
|
thead th {
|
||||||
text-align: inherit;
|
text-align: inherit;
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9007</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9007</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -236,13 +236,13 @@
|
|||||||
<small>Source: <a href='https://github.com/msberends/AMR/blob/master/NEWS.md'><code>NEWS.md</code></a></small>
|
<small>Source: <a href='https://github.com/msberends/AMR/blob/master/NEWS.md'><code>NEWS.md</code></a></small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="amr-1509007" class="section level1">
|
<div id="amr-1509009" class="section level1">
|
||||||
<h1 class="page-header" data-toc-text="1.5.0.9007">
|
<h1 class="page-header" data-toc-text="1.5.0.9009">
|
||||||
<a href="#amr-1509007" class="anchor"></a>AMR 1.5.0.9007<small> Unreleased </small>
|
<a href="#amr-1509009" class="anchor"></a>AMR 1.5.0.9009<small> Unreleased </small>
|
||||||
</h1>
|
</h1>
|
||||||
<div id="last-updated-18-january-2021" class="section level2">
|
<div id="last-updated-22-january-2021" class="section level2">
|
||||||
<h2 class="hasAnchor">
|
<h2 class="hasAnchor">
|
||||||
<a href="#last-updated-18-january-2021" class="anchor"></a><small>Last updated: 18 January 2021</small>
|
<a href="#last-updated-22-january-2021" class="anchor"></a><small>Last updated: 22 January 2021</small>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="new" class="section level3">
|
<div id="new" class="section level3">
|
||||||
<h3 class="hasAnchor">
|
<h3 class="hasAnchor">
|
||||||
@ -285,7 +285,9 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>Added Pretomanid (PMD, J04AK08) to the <code>antibiotics</code> data set</li>
|
<li>Added Pretomanid (PMD, J04AK08) to the <code>antibiotics</code> data set</li>
|
||||||
<li>WHONET code <code>"PNV"</code> will now correctly be interpreted as <code>PHN</code>, the antibiotic code for phenoxymethylpenicillin (‘peni V’)</li>
|
<li>WHONET code <code>"PNV"</code> will now correctly be interpreted as <code>PHN</code>, the antibiotic code for phenoxymethylpenicillin (‘peni V’)</li>
|
||||||
<li>Fix for verbose output of <code><a href="../reference/mdro.html">mdro(..., verbose = TRUE)</a></code> for German guideline (3MGRN and 4MGRN) and <em>P. aeruginosa</em> in Dutch guideline (BRMO)</li>
|
<li>Fix for verbose output of <code><a href="../reference/mdro.html">mdro(..., verbose = TRUE)</a></code> for German guideline (3MGRN and 4MGRN) and Dutch guideline (BRMO, only <em>P. aeruginosa</em>)</li>
|
||||||
|
<li>
|
||||||
|
<code><a href="../reference/as.rsi.html">is.rsi.eligible()</a></code> now returns <code>FALSE</code> immediately if the input does not contain any of the values “R”, “S” or “I”. This drastically improves speed, also for a lot of other functions that rely on automatic determination of antibiotic columns.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div id="other" class="section level3">
|
<div id="other" class="section level3">
|
||||||
@ -293,6 +295,7 @@
|
|||||||
<a href="#other" class="anchor"></a>Other</h3>
|
<a href="#other" class="anchor"></a>Other</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Big documentation updates</li>
|
<li>Big documentation updates</li>
|
||||||
|
<li>Loading the package (i.e., <code><a href="https://msberends.github.io/AMR/">library(AMR)</a></code>) now is ~50 times faster than before</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -12,7 +12,7 @@ articles:
|
|||||||
datasets: datasets.html
|
datasets: datasets.html
|
||||||
resistance_predict: resistance_predict.html
|
resistance_predict: resistance_predict.html
|
||||||
welcome_to_AMR: welcome_to_AMR.html
|
welcome_to_AMR: welcome_to_AMR.html
|
||||||
last_built: 2021-01-18T17:45Z
|
last_built: 2021-01-22T09:54Z
|
||||||
urls:
|
urls:
|
||||||
reference: https://msberends.github.io/AMR//reference
|
reference: https://msberends.github.io/AMR//reference
|
||||||
article: https://msberends.github.io/AMR//articles
|
article: https://msberends.github.io/AMR//articles
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -346,14 +346,14 @@
|
|||||||
<p>The <code>as.rsi()</code> function works in four ways:</p><ol>
|
<p>The <code>as.rsi()</code> function works in four ways:</p><ol>
|
||||||
<li><p>For <strong>cleaning raw / untransformed data</strong>. The data will be cleaned to only contain values S, I and R and will try its best to determine this with some intelligence. For example, mixed values with R/SI interpretations and MIC values such as <code>"<0.25; S"</code> will be coerced to <code>"S"</code>. Combined interpretations for multiple test methods (as seen in laboratory records) such as <code>"S; S"</code> will be coerced to <code>"S"</code>, but a value like <code>"S; I"</code> will return <code>NA</code> with a warning that the input is unclear.</p></li>
|
<li><p>For <strong>cleaning raw / untransformed data</strong>. The data will be cleaned to only contain values S, I and R and will try its best to determine this with some intelligence. For example, mixed values with R/SI interpretations and MIC values such as <code>"<0.25; S"</code> will be coerced to <code>"S"</code>. Combined interpretations for multiple test methods (as seen in laboratory records) such as <code>"S; S"</code> will be coerced to <code>"S"</code>, but a value like <code>"S; I"</code> will return <code>NA</code> with a warning that the input is unclear.</p></li>
|
||||||
<li><p>For <strong>interpreting minimum inhibitory concentration (MIC) values</strong> according to EUCAST or CLSI. You must clean your MIC values first using <code><a href='as.mic.html'>as.mic()</a></code>, that also gives your columns the new data class <code><a href='as.mic.html'>mic</a></code>. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the <code>mo</code> argument.</p><ul>
|
<li><p>For <strong>interpreting minimum inhibitory concentration (MIC) values</strong> according to EUCAST or CLSI. You must clean your MIC values first using <code><a href='as.mic.html'>as.mic()</a></code>, that also gives your columns the new data class <code><a href='as.mic.html'>mic</a></code>. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the <code>mo</code> argument.</p><ul>
|
||||||
<li><p>Using <code>dplyr</code>, R/SI interpretation can be done very easily with either:</p><pre><span class='va'>your_data</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_if</a></span><span class='op'>(</span><span class='va'>is.mic</span>, <span class='va'>as.rsi</span><span class='op'>)</span> <span class='co'># until dplyr 1.0.0</span>
|
<li><p>Using <code>dplyr</code>, R/SI interpretation can be done very easily with either:</p><pre><span class='va'>your_data</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_if</a></span><span class='op'>(</span><span class='va'>is.mic</span>, <span class='va'>as.rsi</span><span class='op'>)</span> <span class='co'># until dplyr 1.0.0</span>
|
||||||
<span class='va'>your_data</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/across.html'>across</a></span><span class='op'>(</span><span class='fu'>where</span><span class='op'>(</span><span class='va'>is.mic</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span><span class='op'>)</span> <span class='co'># since dplyr 1.0.0</span>
|
<span class='va'>your_data</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/across.html'>across</a></span><span class='op'>(</span><span class='op'>(</span><span class='va'>is.mic</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span><span class='op'>)</span> <span class='co'># since dplyr 1.0.0</span>
|
||||||
</pre></li>
|
</pre></li>
|
||||||
<li><p>Operators like "<=" will be stripped before interpretation. When using <code>conserve_capped_values = TRUE</code>, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (<code>conserve_capped_values = FALSE</code>) considers ">2" to be lower than ">=4" and might in this case return "S" or "I".</p></li>
|
<li><p>Operators like "<=" will be stripped before interpretation. When using <code>conserve_capped_values = TRUE</code>, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (<code>conserve_capped_values = FALSE</code>) considers ">2" to be lower than ">=4" and might in this case return "S" or "I".</p></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><p>For <strong>interpreting disk diffusion diameters</strong> according to EUCAST or CLSI. You must clean your disk zones first using <code><a href='as.disk.html'>as.disk()</a></code>, that also gives your columns the new data class <code><a href='as.disk.html'>disk</a></code>. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the <code>mo</code> argument.</p><ul>
|
<li><p>For <strong>interpreting disk diffusion diameters</strong> according to EUCAST or CLSI. You must clean your disk zones first using <code><a href='as.disk.html'>as.disk()</a></code>, that also gives your columns the new data class <code><a href='as.disk.html'>disk</a></code>. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the <code>mo</code> argument.</p><ul>
|
||||||
<li><p>Using <code>dplyr</code>, R/SI interpretation can be done very easily with either:</p><pre><span class='va'>your_data</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_if</a></span><span class='op'>(</span><span class='va'>is.disk</span>, <span class='va'>as.rsi</span><span class='op'>)</span> <span class='co'># until dplyr 1.0.0</span>
|
<li><p>Using <code>dplyr</code>, R/SI interpretation can be done very easily with either:</p><pre><span class='va'>your_data</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_if</a></span><span class='op'>(</span><span class='va'>is.disk</span>, <span class='va'>as.rsi</span><span class='op'>)</span> <span class='co'># until dplyr 1.0.0</span>
|
||||||
<span class='va'>your_data</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/across.html'>across</a></span><span class='op'>(</span><span class='fu'>where</span><span class='op'>(</span><span class='va'>is.disk</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span><span class='op'>)</span> <span class='co'># since dplyr 1.0.0</span>
|
<span class='va'>your_data</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/across.html'>across</a></span><span class='op'>(</span><span class='op'>(</span><span class='va'>is.disk</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span><span class='op'>)</span> <span class='co'># since dplyr 1.0.0</span>
|
||||||
</pre></li>
|
</pre></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><p>For <strong>interpreting a complete data set</strong>, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running <code>as.rsi(data)</code>.</p></li>
|
<li><p>For <strong>interpreting a complete data set</strong>, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running <code>as.rsi(data)</code>.</p></li>
|
||||||
@ -452,7 +452,7 @@ The <a href='lifecycle.html'>lifecycle</a> of this function is <strong>stable</s
|
|||||||
<span class='kw'>if</span> <span class='op'>(</span><span class='kw'><a href='https://rdrr.io/r/base/library.html'>require</a></span><span class='op'>(</span><span class='st'><a href='https://dplyr.tidyverse.org'>"dplyr"</a></span><span class='op'>)</span><span class='op'>)</span> <span class='op'>{</span>
|
<span class='kw'>if</span> <span class='op'>(</span><span class='kw'><a href='https://rdrr.io/r/base/library.html'>require</a></span><span class='op'>(</span><span class='st'><a href='https://dplyr.tidyverse.org'>"dplyr"</a></span><span class='op'>)</span><span class='op'>)</span> <span class='op'>{</span>
|
||||||
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_if</a></span><span class='op'>(</span><span class='va'>is.mic</span>, <span class='va'>as.rsi</span><span class='op'>)</span>
|
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_if</a></span><span class='op'>(</span><span class='va'>is.mic</span>, <span class='va'>as.rsi</span><span class='op'>)</span>
|
||||||
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_if</a></span><span class='op'>(</span><span class='kw'>function</span><span class='op'>(</span><span class='va'>x</span><span class='op'>)</span> <span class='fu'><a href='as.mic.html'>is.mic</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>)</span> <span class='op'>|</span> <span class='fu'><a href='as.disk.html'>is.disk</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span>
|
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_if</a></span><span class='op'>(</span><span class='kw'>function</span><span class='op'>(</span><span class='va'>x</span><span class='op'>)</span> <span class='fu'><a href='as.mic.html'>is.mic</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>)</span> <span class='op'>|</span> <span class='fu'><a href='as.disk.html'>is.disk</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span>
|
||||||
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/across.html'>across</a></span><span class='op'>(</span><span class='fu'>where</span><span class='op'>(</span><span class='va'>is.mic</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span><span class='op'>)</span>
|
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/across.html'>across</a></span><span class='op'>(</span><span class='op'>(</span><span class='va'>is.mic</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span><span class='op'>)</span>
|
||||||
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_at</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/vars.html'>vars</a></span><span class='op'>(</span><span class='va'>AMP</span><span class='op'>:</span><span class='va'>TOB</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span>
|
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate_all.html'>mutate_at</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/vars.html'>vars</a></span><span class='op'>(</span><span class='va'>AMP</span><span class='op'>:</span><span class='va'>TOB</span><span class='op'>)</span>, <span class='va'>as.rsi</span><span class='op'>)</span>
|
||||||
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/across.html'>across</a></span><span class='op'>(</span><span class='va'>AMP</span><span class='op'>:</span><span class='va'>TOB</span>, <span class='va'>as.rsi</span><span class='op'>)</span><span class='op'>)</span>
|
<span class='va'>df</span> <span class='op'>%>%</span> <span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span><span class='fu'><a href='https://dplyr.tidyverse.org/reference/across.html'>across</a></span><span class='op'>(</span><span class='va'>AMP</span><span class='op'>:</span><span class='va'>TOB</span>, <span class='va'>as.rsi</span><span class='op'>)</span><span class='op'>)</span>
|
||||||
|
|
||||||
@ -497,7 +497,7 @@ The <a href='lifecycle.html'>lifecycle</a> of this function is <strong>stable</s
|
|||||||
|
|
||||||
<span class='co'># note: from dplyr 1.0.0 on, this will be: </span>
|
<span class='co'># note: from dplyr 1.0.0 on, this will be: </span>
|
||||||
<span class='co'># example_isolates %>%</span>
|
<span class='co'># example_isolates %>%</span>
|
||||||
<span class='co'># mutate(across(where(is.rsi.eligible), as.rsi))</span>
|
<span class='co'># mutate(across((is.rsi.eligible), as.rsi))</span>
|
||||||
<span class='op'>}</span>
|
<span class='op'>}</span>
|
||||||
<span class='co'># }</span>
|
<span class='co'># }</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ count_resistant() should be used to count resistant isolates, count_susceptible(
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9007</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -459,7 +459,7 @@
|
|||||||
</tr><tr>
|
</tr><tr>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<p><code><a href="isolate_identifier.html">isolate_identifier()</a></code> </p>
|
<p><code><a href="isolate_identifier.html">isolate_identifier()</a></code> <code><a href="isolate_identifier.html">all.equal(<i><isolate_identifier></i>)</a></code> </p>
|
||||||
</td>
|
</td>
|
||||||
<td><p>Create Identifier of an Isolate</p></td>
|
<td><p>Create Identifier of an Isolate</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -242,7 +242,10 @@
|
|||||||
<p>This function will paste the microorganism code with all antimicrobial results into one string for each row in a data set. This is useful to compare isolates, e.g. between institutions or regions, when there is no genotyping available.</p>
|
<p>This function will paste the microorganism code with all antimicrobial results into one string for each row in a data set. This is useful to compare isolates, e.g. between institutions or regions, when there is no genotyping available.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<pre class="usage"><span class='fu'>isolate_identifier</span><span class='op'>(</span><span class='va'>x</span>, col_mo <span class='op'>=</span> <span class='cn'>NULL</span>, cols_ab <span class='op'>=</span> <span class='cn'>NULL</span><span class='op'>)</span></pre>
|
<pre class="usage"><span class='fu'>isolate_identifier</span><span class='op'>(</span><span class='va'>x</span>, col_mo <span class='op'>=</span> <span class='cn'>NULL</span>, cols_ab <span class='op'>=</span> <span class='cn'>NULL</span><span class='op'>)</span>
|
||||||
|
|
||||||
|
<span class='co'># S3 method for isolate_identifier</span>
|
||||||
|
<span class='fu'><a href='https://rdrr.io/r/base/all.equal.html'>all.equal</a></span><span class='op'>(</span><span class='va'>target</span>, <span class='va'>current</span>, ignore_empty_results <span class='op'>=</span> <span class='cn'>TRUE</span>, <span class='va'>...</span><span class='op'>)</span></pre>
|
||||||
|
|
||||||
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
|
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
|
||||||
<table class="ref-arguments">
|
<table class="ref-arguments">
|
||||||
@ -259,14 +262,30 @@
|
|||||||
<th>cols_ab</th>
|
<th>cols_ab</th>
|
||||||
<td><p>a character vector of column names of <code>x</code>, or (a combination with) an <a href='[ab_class()]'>antibiotic selector function</a>, such as <code><a href='antibiotic_class_selectors.html'>carbapenems()</a></code> and <code><a href='antibiotic_class_selectors.html'>aminoglycosides()</a></code></p></td>
|
<td><p>a character vector of column names of <code>x</code>, or (a combination with) an <a href='[ab_class()]'>antibiotic selector function</a>, such as <code><a href='antibiotic_class_selectors.html'>carbapenems()</a></code> and <code><a href='antibiotic_class_selectors.html'>aminoglycosides()</a></code></p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>target</th>
|
||||||
|
<td><p><span style="R">R</span> object.</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>current</th>
|
||||||
|
<td><p>other <span style="R">R</span> object, to be compared with <code>target</code>.</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>ignore_empty_results</th>
|
||||||
|
<td><p>a logical to indicate whether empty results must be ignored, so that only values R, S and I will be compared</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>...</th>
|
||||||
|
<td><p>column name of an antibiotic, see section <em>Antibiotics</em> below</p></td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h2 class="hasAnchor" id="maturing-lifecycle"><a class="anchor" href="#maturing-lifecycle"></a>Maturing Lifecycle</h2>
|
<h2 class="hasAnchor" id="experimental-lifecycle"><a class="anchor" href="#experimental-lifecycle"></a>Experimental Lifecycle</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p><img src='figures/lifecycle_maturing.svg' style=margin-bottom:5px /> <br />
|
<p><img src='figures/lifecycle_experimental.svg' style=margin-bottom:5px /> <br />
|
||||||
The <a href='lifecycle.html'>lifecycle</a> of this function is <strong>maturing</strong>. The unlying code of a maturing function has been roughed out, but finer details might still change. Since this function needs wider usage and more extensive testing, you are very welcome <a href='https://github.com/msberends/AMR/issues'>to suggest changes at our repository</a> or <a href='AMR.html'>write us an email (see section 'Contact Us')</a>.</p>
|
The <a href='lifecycle.html'>lifecycle</a> of this function is <strong>experimental</strong>. An experimental function is in early stages of development. The unlying code might be changing frequently. Experimental functions might be removed without deprecation, so you are generally best off waiting until a function is more mature before you use it in production code. Experimental functions are only available in development versions of this <code>AMR</code> package and will thus not be included in releases that are submitted to CRAN, since such functions have not yet matured enough.</p>
|
||||||
<h2 class="hasAnchor" id="read-more-on-our-website-"><a class="anchor" href="#read-more-on-our-website-"></a>Read more on Our Website!</h2>
|
<h2 class="hasAnchor" id="read-more-on-our-website-"><a class="anchor" href="#read-more-on-our-website-"></a>Read more on Our Website!</h2>
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ This page contains a section for every lifecycle (with text borrowed from the af
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ This is the fastest way to have your organisation (or analysis) specific codes p
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ resistance() should be used to calculate resistance, susceptibility() should be
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ When negative ('left-skewed'): the left tail is longer; the mass of the distribu
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9006</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9008</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9007</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.5.0.9009</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -87,15 +87,15 @@ The \code{\link[=as.rsi]{as.rsi()}} function works in four ways:
|
|||||||
\item For \strong{cleaning raw / untransformed data}. The data will be cleaned to only contain values S, I and R and will try its best to determine this with some intelligence. For example, mixed values with R/SI interpretations and MIC values such as \code{"<0.25; S"} will be coerced to \code{"S"}. Combined interpretations for multiple test methods (as seen in laboratory records) such as \code{"S; S"} will be coerced to \code{"S"}, but a value like \code{"S; I"} will return \code{NA} with a warning that the input is unclear.
|
\item For \strong{cleaning raw / untransformed data}. The data will be cleaned to only contain values S, I and R and will try its best to determine this with some intelligence. For example, mixed values with R/SI interpretations and MIC values such as \code{"<0.25; S"} will be coerced to \code{"S"}. Combined interpretations for multiple test methods (as seen in laboratory records) such as \code{"S; S"} will be coerced to \code{"S"}, but a value like \code{"S; I"} will return \code{NA} with a warning that the input is unclear.
|
||||||
\item For \strong{interpreting minimum inhibitory concentration (MIC) values} according to EUCAST or CLSI. You must clean your MIC values first using \code{\link[=as.mic]{as.mic()}}, that also gives your columns the new data class \code{\link{mic}}. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the \code{mo} argument.
|
\item For \strong{interpreting minimum inhibitory concentration (MIC) values} according to EUCAST or CLSI. You must clean your MIC values first using \code{\link[=as.mic]{as.mic()}}, that also gives your columns the new data class \code{\link{mic}}. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the \code{mo} argument.
|
||||||
\itemize{
|
\itemize{
|
||||||
\item Using \code{dplyr}, R/SI interpretation can be done very easily with either:\preformatted{your_data \%>\% mutate_if(is.mic, as.rsi) # until dplyr 1.0.0
|
\item Using \code{dplyr}, R/SI interpretation can be done very easily with either:\preformatted{your_data \%>\% mutate_if(is.mic, as.rsi) # until dplyr 1.0.0
|
||||||
your_data \%>\% mutate(across(where(is.mic), as.rsi)) # since dplyr 1.0.0
|
your_data \%>\% mutate(across((is.mic), as.rsi)) # since dplyr 1.0.0
|
||||||
}
|
}
|
||||||
\item Operators like "<=" will be stripped before interpretation. When using \code{conserve_capped_values = TRUE}, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (\code{conserve_capped_values = FALSE}) considers ">2" to be lower than ">=4" and might in this case return "S" or "I".
|
\item Operators like "<=" will be stripped before interpretation. When using \code{conserve_capped_values = TRUE}, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (\code{conserve_capped_values = FALSE}) considers ">2" to be lower than ">=4" and might in this case return "S" or "I".
|
||||||
}
|
}
|
||||||
\item For \strong{interpreting disk diffusion diameters} according to EUCAST or CLSI. You must clean your disk zones first using \code{\link[=as.disk]{as.disk()}}, that also gives your columns the new data class \code{\link{disk}}. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the \code{mo} argument.
|
\item For \strong{interpreting disk diffusion diameters} according to EUCAST or CLSI. You must clean your disk zones first using \code{\link[=as.disk]{as.disk()}}, that also gives your columns the new data class \code{\link{disk}}. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the \code{mo} argument.
|
||||||
\itemize{
|
\itemize{
|
||||||
\item Using \code{dplyr}, R/SI interpretation can be done very easily with either:\preformatted{your_data \%>\% mutate_if(is.disk, as.rsi) # until dplyr 1.0.0
|
\item Using \code{dplyr}, R/SI interpretation can be done very easily with either:\preformatted{your_data \%>\% mutate_if(is.disk, as.rsi) # until dplyr 1.0.0
|
||||||
your_data \%>\% mutate(across(where(is.disk), as.rsi)) # since dplyr 1.0.0
|
your_data \%>\% mutate(across((is.disk), as.rsi)) # since dplyr 1.0.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
\item For \strong{interpreting a complete data set}, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running \code{as.rsi(data)}.
|
\item For \strong{interpreting a complete data set}, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running \code{as.rsi(data)}.
|
||||||
@ -193,7 +193,7 @@ as.rsi(x = as.disk(18),
|
|||||||
if (require("dplyr")) {
|
if (require("dplyr")) {
|
||||||
df \%>\% mutate_if(is.mic, as.rsi)
|
df \%>\% mutate_if(is.mic, as.rsi)
|
||||||
df \%>\% mutate_if(function(x) is.mic(x) | is.disk(x), as.rsi)
|
df \%>\% mutate_if(function(x) is.mic(x) | is.disk(x), as.rsi)
|
||||||
df \%>\% mutate(across(where(is.mic), as.rsi))
|
df \%>\% mutate(across((is.mic), as.rsi))
|
||||||
df \%>\% mutate_at(vars(AMP:TOB), as.rsi)
|
df \%>\% mutate_at(vars(AMP:TOB), as.rsi)
|
||||||
df \%>\% mutate(across(AMP:TOB, as.rsi))
|
df \%>\% mutate(across(AMP:TOB, as.rsi))
|
||||||
|
|
||||||
@ -238,7 +238,7 @@ if (require("dplyr")) {
|
|||||||
|
|
||||||
# note: from dplyr 1.0.0 on, this will be:
|
# note: from dplyr 1.0.0 on, this will be:
|
||||||
# example_isolates \%>\%
|
# example_isolates \%>\%
|
||||||
# mutate(across(where(is.rsi.eligible), as.rsi))
|
# mutate(across((is.rsi.eligible), as.rsi))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,12 @@
|
|||||||
% Please edit documentation in R/isolate_identifier.R
|
% Please edit documentation in R/isolate_identifier.R
|
||||||
\name{isolate_identifier}
|
\name{isolate_identifier}
|
||||||
\alias{isolate_identifier}
|
\alias{isolate_identifier}
|
||||||
|
\alias{all.equal.isolate_identifier}
|
||||||
\title{Create Identifier of an Isolate}
|
\title{Create Identifier of an Isolate}
|
||||||
\usage{
|
\usage{
|
||||||
isolate_identifier(x, col_mo = NULL, cols_ab = NULL)
|
isolate_identifier(x, col_mo = NULL, cols_ab = NULL)
|
||||||
|
|
||||||
|
\method{all.equal}{isolate_identifier}(target, current, ignore_empty_results = TRUE, ...)
|
||||||
}
|
}
|
||||||
\arguments{
|
\arguments{
|
||||||
\item{x}{data with antibiotic columns, such as \code{amox}, \code{AMX} and \code{AMC}}
|
\item{x}{data with antibiotic columns, such as \code{amox}, \code{AMX} and \code{AMC}}
|
||||||
@ -12,14 +15,22 @@ isolate_identifier(x, col_mo = NULL, cols_ab = NULL)
|
|||||||
\item{col_mo}{column name of the IDs of the microorganisms (see \code{\link[=as.mo]{as.mo()}}), defaults to the first column of class \code{\link{mo}}. Values will be coerced using \code{\link[=as.mo]{as.mo()}}.}
|
\item{col_mo}{column name of the IDs of the microorganisms (see \code{\link[=as.mo]{as.mo()}}), defaults to the first column of class \code{\link{mo}}. Values will be coerced using \code{\link[=as.mo]{as.mo()}}.}
|
||||||
|
|
||||||
\item{cols_ab}{a character vector of column names of \code{x}, or (a combination with) an \href{[ab_class()]}{antibiotic selector function}, such as \code{\link[=carbapenems]{carbapenems()}} and \code{\link[=aminoglycosides]{aminoglycosides()}}}
|
\item{cols_ab}{a character vector of column names of \code{x}, or (a combination with) an \href{[ab_class()]}{antibiotic selector function}, such as \code{\link[=carbapenems]{carbapenems()}} and \code{\link[=aminoglycosides]{aminoglycosides()}}}
|
||||||
|
|
||||||
|
\item{target}{\R object.}
|
||||||
|
|
||||||
|
\item{current}{other \R object, to be compared with \code{target}.}
|
||||||
|
|
||||||
|
\item{ignore_empty_results}{a logical to indicate whether empty results must be ignored, so that only values R, S and I will be compared}
|
||||||
|
|
||||||
|
\item{...}{column name of an antibiotic, see section \emph{Antibiotics} below}
|
||||||
}
|
}
|
||||||
\description{
|
\description{
|
||||||
This function will paste the microorganism code with all antimicrobial results into one string for each row in a data set. This is useful to compare isolates, e.g. between institutions or regions, when there is no genotyping available.
|
This function will paste the microorganism code with all antimicrobial results into one string for each row in a data set. This is useful to compare isolates, e.g. between institutions or regions, when there is no genotyping available.
|
||||||
}
|
}
|
||||||
\section{Maturing Lifecycle}{
|
\section{Experimental Lifecycle}{
|
||||||
|
|
||||||
\if{html}{\figure{lifecycle_maturing.svg}{options: style=margin-bottom:5px} \cr}
|
\if{html}{\figure{lifecycle_experimental.svg}{options: style=margin-bottom:5px} \cr}
|
||||||
The \link[=lifecycle]{lifecycle} of this function is \strong{maturing}. The unlying code of a maturing function has been roughed out, but finer details might still change. Since this function needs wider usage and more extensive testing, you are very welcome \href{https://github.com/msberends/AMR/issues}{to suggest changes at our repository} or \link[=AMR]{write us an email (see section 'Contact Us')}.
|
The \link[=lifecycle]{lifecycle} of this function is \strong{experimental}. An experimental function is in early stages of development. The unlying code might be changing frequently. Experimental functions might be removed without deprecation, so you are generally best off waiting until a function is more mature before you use it in production code. Experimental functions are only available in development versions of this \code{AMR} package and will thus not be included in releases that are submitted to CRAN, since such functions have not yet matured enough.
|
||||||
}
|
}
|
||||||
|
|
||||||
\section{Read more on Our Website!}{
|
\section{Read more on Our Website!}{
|
||||||
|
@ -24,14 +24,6 @@
|
|||||||
# how to conduct AMR analysis: https://msberends.github.io/AMR/ #
|
# how to conduct AMR analysis: https://msberends.github.io/AMR/ #
|
||||||
# ==================================================================== #
|
# ==================================================================== #
|
||||||
*/
|
*/
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.navbar-default {
|
|
||||||
background-color: #213730;
|
|
||||||
}
|
|
||||||
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
|
|
||||||
background-color: #355951;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* R for Data Science (r4ds) */
|
/* R for Data Science (r4ds) */
|
||||||
#r4ds a {
|
#r4ds a {
|
||||||
@ -209,16 +201,6 @@ thead ~ tbody {
|
|||||||
/* only when it has a header */
|
/* only when it has a header */
|
||||||
border-bottom: 2px solid black;
|
border-bottom: 2px solid black;
|
||||||
}
|
}
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
thead {
|
|
||||||
border-top: 2px solid white;
|
|
||||||
border-bottom: 2px solid white;
|
|
||||||
}
|
|
||||||
thead ~ tbody {
|
|
||||||
/* only when it has a header */
|
|
||||||
border-bottom: 2px solid white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
thead th {
|
thead th {
|
||||||
text-align: inherit;
|
text-align: inherit;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ test_that("data sets are valid", {
|
|||||||
test_that("creation of data sets is valid", {
|
test_that("creation of data sets is valid", {
|
||||||
skip_on_cran()
|
skip_on_cran()
|
||||||
|
|
||||||
df <- create_MO_lookup()
|
df <- AMR:::MO_lookup
|
||||||
expect_lt(nrow(df[which(df$prevalence == 1), ]), nrow(df[which(df$prevalence == 2), ]))
|
expect_lt(nrow(df[which(df$prevalence == 1), ]), nrow(df[which(df$prevalence == 2), ]))
|
||||||
expect_lt(nrow(df[which(df$prevalence == 2), ]), nrow(df[which(df$prevalence == 3), ]))
|
expect_lt(nrow(df[which(df$prevalence == 2), ]), nrow(df[which(df$prevalence == 3), ]))
|
||||||
expect_true(all(c("mo", "fullname",
|
expect_true(all(c("mo", "fullname",
|
||||||
@ -71,11 +71,10 @@ test_that("creation of data sets is valid", {
|
|||||||
"rank", "ref", "species_id", "source", "prevalence", "snomed",
|
"rank", "ref", "species_id", "source", "prevalence", "snomed",
|
||||||
"kingdom_index", "fullname_lower", "g_species") %in% colnames(df)))
|
"kingdom_index", "fullname_lower", "g_species") %in% colnames(df)))
|
||||||
|
|
||||||
olddf <- create_MO.old_lookup()
|
|
||||||
expect_true(all(c("fullname", "fullname_new", "ref", "prevalence",
|
expect_true(all(c("fullname", "fullname_new", "ref", "prevalence",
|
||||||
"fullname_lower", "g_species") %in% colnames(olddf)))
|
"fullname_lower", "g_species") %in% colnames(AMR:::MO.old_lookup)))
|
||||||
|
|
||||||
expect_s3_class(create_species_cons_cops("CoNS"), "mo")
|
expect_s3_class(AMR:::MO_CONS, "mo")
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
44
tests/testthat/test-isolate_identifier.R
Normal file
44
tests/testthat/test-isolate_identifier.R
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# ==================================================================== #
|
||||||
|
# TITLE #
|
||||||
|
# Antimicrobial Resistance (AMR) Analysis for R #
|
||||||
|
# #
|
||||||
|
# SOURCE #
|
||||||
|
# https://github.com/msberends/AMR #
|
||||||
|
# #
|
||||||
|
# LICENCE #
|
||||||
|
# (c) 2018-2021 Berends MS, Luz CF et al. #
|
||||||
|
# Developed at the University of Groningen, the Netherlands, in #
|
||||||
|
# collaboration with non-profit organisations Certe Medical #
|
||||||
|
# Diagnostics & Advice, and University Medical Center Groningen. #
|
||||||
|
# #
|
||||||
|
# This R package is free software; you can freely use and distribute #
|
||||||
|
# it for both personal and commercial purposes under the terms of the #
|
||||||
|
# GNU General Public License version 2.0 (GNU GPL-2), as published by #
|
||||||
|
# the Free Software Foundation. #
|
||||||
|
# We created this package for both routine data analysis and academic #
|
||||||
|
# research and it was publicly released in the hope that it will be #
|
||||||
|
# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. #
|
||||||
|
# #
|
||||||
|
# Visit our website for the full manual and a complete tutorial about #
|
||||||
|
# how to conduct AMR analysis: https://msberends.github.io/AMR/ #
|
||||||
|
# ==================================================================== #
|
||||||
|
|
||||||
|
context("isolate_identifier.R")
|
||||||
|
|
||||||
|
test_that("isolate_identifier works", {
|
||||||
|
x <- suppressMessages(isolate_identifier(example_isolates))
|
||||||
|
expect_s3_class(x, "isolate_identifier")
|
||||||
|
expect_s3_class(x, "character")
|
||||||
|
|
||||||
|
expect_equal(suppressMessages(
|
||||||
|
unique(nchar(isolate_identifier(example_isolates, cols_ab = carbapenems(), col_mo = FALSE)))),
|
||||||
|
2)
|
||||||
|
|
||||||
|
expect_warning(isolate_identifier(example_isolates[, 1:3, drop = FALSE])) # without mo and without rsi
|
||||||
|
expect_warning(isolate_identifier(example_isolates[, 1:9, drop = FALSE])) # only without rsi
|
||||||
|
|
||||||
|
|
||||||
|
expect_output(print(x))
|
||||||
|
expect_s3_class(unique(c(x, x)), "isolate_identifier")
|
||||||
|
|
||||||
|
})
|
@ -49,7 +49,7 @@ As said, SPSS is easier to learn than R. But SPSS, SAS and Stata come with major
|
|||||||
|
|
||||||
* **R has a huge community.**
|
* **R has a huge community.**
|
||||||
|
|
||||||
Many R users just ask questions on websites like [StackOverflow.com](https://stackoverflow.com), the largest online community for programmers. At the time of writing, more than [360,000 R-related questions](https://stackoverflow.com/questions/tagged/r?sort=votes) have already been asked on this platform (which covers questions and answers for any programming language). In my own experience, most questions are answered within a couple of minutes.
|
Many R users just ask questions on websites like [StackOverflow.com](https://stackoverflow.com), the largest online community for programmers. At the time of writing, [`r format(suppressWarnings(read.csv("https://data.stackexchange.com/stackoverflow/csv/1674647", quote = '"'))[[1]], big.mark = ",")` R-related questions](https://stackoverflow.com/questions/tagged/r?sort=votes) 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 minutes.
|
||||||
|
|
||||||
* **R understands any data type, including SPSS/SAS/Stata.**
|
* **R understands any data type, including SPSS/SAS/Stata.**
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user