mirror of https://github.com/msberends/AMR.git
157 lines
5.6 KiB
R
157 lines
5.6 KiB
R
# ==================================================================== #
|
|
# TITLE: #
|
|
# AMR: An R Package for Working with Antimicrobial Resistance Data #
|
|
# #
|
|
# SOURCE CODE: #
|
|
# https://github.com/msberends/AMR #
|
|
# #
|
|
# PLEASE CITE THIS SOFTWARE AS: #
|
|
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
|
|
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
|
|
# Data. Journal of Statistical Software, 104(3), 1-31. #
|
|
# https://doi.org/10.18637/jss.v104.i03 #
|
|
# #
|
|
# Developed at the University of Groningen and the University Medical #
|
|
# Center Groningen in The Netherlands, in collaboration with many #
|
|
# colleagues from around the world, see our website. #
|
|
# #
|
|
# 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 data analysis: https://msberends.github.io/AMR/ #
|
|
# ==================================================================== #
|
|
|
|
# Check if these functions still exist in their package (all are in Suggests field)
|
|
# Since GitHub Actions runs every night, we will get emailed when a dependency fails based on this unit test
|
|
|
|
# functions used by import_fn()
|
|
import_functions <- c(
|
|
"%chin%" = "data.table",
|
|
"anti_join" = "dplyr",
|
|
"chmatch" = "data.table",
|
|
"cur_column" = "dplyr",
|
|
"full_join" = "dplyr",
|
|
"has_internet" = "curl",
|
|
"html_attr" = "rvest",
|
|
"html_children" = "rvest",
|
|
"html_node" = "rvest",
|
|
"html_nodes" = "rvest",
|
|
"html_table" = "rvest",
|
|
"html_text" = "rvest",
|
|
"inner_join" = "dplyr",
|
|
"insertText" = "rstudioapi",
|
|
"left_join" = "dplyr",
|
|
"new_pillar_shaft_simple" = "pillar",
|
|
"progress_bar" = "progress",
|
|
"read_html" = "xml2",
|
|
"right_join" = "dplyr",
|
|
"semi_join" = "dplyr",
|
|
"showQuestion" = "rstudioapi"
|
|
)
|
|
|
|
# functions that are called directly with ::
|
|
call_functions <- c(
|
|
# cleaner
|
|
"freq.default" = "cleaner",
|
|
# cli
|
|
"symbol" = "cli",
|
|
"ansi_has_hyperlink_support" = "cli",
|
|
# rstudioapi (RStudio)
|
|
"isAvailable" = "rstudioapi",
|
|
"versionInfo" = "rstudioapi",
|
|
# readxl
|
|
"read_excel" = "readxl",
|
|
# ggplot2
|
|
"aes" = "ggplot2",
|
|
"aes_string" = "ggplot2",
|
|
"arrow" = "ggplot2",
|
|
"autoplot" = "ggplot2",
|
|
"element_blank" = "ggplot2",
|
|
"element_line" = "ggplot2",
|
|
"element_text" = "ggplot2",
|
|
"expand_limits" = "ggplot2",
|
|
"facet_wrap" = "ggplot2",
|
|
"geom_errorbar" = "ggplot2",
|
|
"geom_path" = "ggplot2",
|
|
"geom_point" = "ggplot2",
|
|
"geom_ribbon" = "ggplot2",
|
|
"geom_segment" = "ggplot2",
|
|
"geom_text" = "ggplot2",
|
|
"ggplot" = "ggplot2",
|
|
"labs" = "ggplot2",
|
|
"layer" = "ggplot2",
|
|
"position_dodge2" = "ggplot2",
|
|
"position_fill" = "ggplot2",
|
|
"scale_colour_discrete" = "ggplot2",
|
|
"scale_fill_discrete" = "ggplot2",
|
|
"scale_fill_manual" = "ggplot2",
|
|
"scale_x_discrete" = "ggplot2",
|
|
"scale_y_continuous" = "ggplot2",
|
|
"scale_y_discrete" = "ggplot2",
|
|
"theme" = "ggplot2",
|
|
"theme_minimal" = "ggplot2",
|
|
"unit" = "ggplot2",
|
|
"xlab" = "ggplot2",
|
|
"ylab" = "ggplot2",
|
|
"vec_arith" = "vctrs"
|
|
)
|
|
if (AMR:::pkg_is_available("skimr", min_version = "2.0.0")) {
|
|
call_functions <- c(call_functions,
|
|
# skimr
|
|
"inline_hist" = "skimr",
|
|
"sfl" = "skimr"
|
|
)
|
|
}
|
|
|
|
extended_functions <- c(
|
|
"freq" = "cleaner",
|
|
"autoplot" = "ggplot2",
|
|
"pillar_shaft" = "pillar",
|
|
"get_skimmers" = "skimr",
|
|
"type_sum" = "pillar",
|
|
"vec_cast" = "vctrs",
|
|
"vec_math" = "vctrs",
|
|
"vec_ptype2" = "vctrs"
|
|
)
|
|
|
|
import_functions <- c(import_functions, call_functions, extended_functions)
|
|
for (i in seq_len(length(import_functions))) {
|
|
fn <- names(import_functions)[i]
|
|
pkg <- unname(import_functions[i])
|
|
# function should exist in foreign pkg namespace
|
|
if (AMR:::pkg_is_available(pkg,
|
|
also_load = FALSE,
|
|
min_version = if (pkg == "dplyr") "1.0.0" else NULL
|
|
)) {
|
|
expect_true(!is.null(AMR:::import_fn(name = fn, pkg = pkg, error_on_fail = FALSE)),
|
|
info = paste0("does not exist (anymore): function `", pkg, "::", fn, "()`")
|
|
)
|
|
} else if (pkg != "rstudioapi") {
|
|
warning("Package '", pkg, "' does not exist anymore")
|
|
}
|
|
}
|
|
|
|
if (AMR:::pkg_is_available("cli")) {
|
|
expect_true(!is.null(cli::symbol$info))
|
|
}
|
|
if (AMR:::pkg_is_available("cli")) {
|
|
}
|
|
if (AMR:::pkg_is_available("cli")) {
|
|
expect_true(!is.null(cli::symbol$ellipsis))
|
|
}
|
|
if (AMR:::pkg_is_available("ggplot2")) {
|
|
# the scale_*_mic() functions rely on these
|
|
expect_true(is.function(ggplot2::scale_x_discrete()$transform))
|
|
expect_true(is.function(ggplot2::scale_y_discrete()$transform))
|
|
expect_true(is.function(ggplot2::scale_colour_discrete()$transform))
|
|
expect_true(is.function(ggplot2::scale_fill_discrete()$transform))
|
|
}
|
|
|
|
|