count | R Documentation |
These functions can be used to count resistant/susceptible microbial isolates. All functions support quasiquotation with pipes, can be used in summarise()
from the dplyr
package and also support grouped variables, see Examples.
count_resistant()
should be used to count resistant isolates, count_susceptible()
should be used to count susceptible isolates.
count_resistant(..., only_all_tested = FALSE)
count_susceptible(..., only_all_tested = FALSE)
count_S(..., only_all_tested = FALSE)
count_SI(..., only_all_tested = FALSE)
count_I(..., only_all_tested = FALSE)
count_IR(..., only_all_tested = FALSE)
count_R(..., only_all_tested = FALSE)
count_all(..., only_all_tested = FALSE)
n_sir(..., only_all_tested = FALSE)
count_df(data, translate_ab = "name", language = get_AMR_locale(),
combine_SI = TRUE)
... |
One or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with |
only_all_tested |
(for combination therapies, i.e. using more than one variable for |
data |
A data.frame containing columns with class |
translate_ab |
A column name of the antimicrobials data set to translate the antibiotic abbreviations to, using |
language |
Language of the returned text - the default is the current system language (see |
combine_SI |
A logical to indicate whether all values of S, SDD, and I must be merged into one, so the output only consists of S+SDD+I vs. R (susceptible vs. resistant) - the default is |
These functions are meant to count isolates. Use the resistance()
/susceptibility()
functions to calculate microbial resistance/susceptibility.
The function count_resistant()
is equal to the function count_R()
. The function count_susceptible()
is equal to the function count_SI()
.
The function n_sir()
is an alias of count_all()
. They can be used to count all available isolates, i.e. where all input antimicrobials have an available result (S, I or R). Their use is equal to n_distinct()
. Their function is equal to count_susceptible(...) + count_resistant(...)
.
The function count_df()
takes any variable from data
that has an sir
class (created with as.sir()
) and counts the number of S's, I's and R's. It also supports grouped variables. The function sir_df()
works exactly like count_df()
, but adds the percentage of S, I and R.
An integer
In 2019, the European Committee on Antimicrobial Susceptibility Testing (EUCAST) has decided to change the definitions of susceptibility testing categories S, I, and R (https://www.eucast.org/newsiandr).
This AMR package follows insight; use susceptibility()
(equal to proportion_SI()
) to determine antimicrobial susceptibility and count_susceptible()
(equal to count_SI()
) to count susceptible isolates.
When using more than one variable for ...
(= combination therapy), use only_all_tested
to only count isolates that are tested for all antimicrobials/variables that you test them for. See this example for two antimicrobials, Drug A and Drug B, about how susceptibility()
works to calculate the %SI:
-------------------------------------------------------------------- only_all_tested = FALSE only_all_tested = TRUE ----------------------- ----------------------- Drug A Drug B considered considered considered considered susceptible tested susceptible tested -------- -------- ----------- ---------- ----------- ---------- S or I S or I X X X X R S or I X X X X <NA> S or I X X - - S or I R X X X X R R - X - X <NA> R - - - - S or I <NA> X X - - R <NA> - - - - <NA> <NA> - - - - --------------------------------------------------------------------
Please note that, in combination therapies, for only_all_tested = TRUE
applies that:
count_S() + count_I() + count_R() = count_all() proportion_S() + proportion_I() + proportion_R() = 1
and that, in combination therapies, for only_all_tested = FALSE
applies that:
count_S() + count_I() + count_R() >= count_all() proportion_S() + proportion_I() + proportion_R() >= 1
Using only_all_tested
has no impact when only using one antibiotic as input.
proportion_*
to calculate microbial resistance and susceptibility.
# example_isolates is a data set available in the AMR package.
# run ?example_isolates for more info.
# base R ------------------------------------------------------------
count_resistant(example_isolates$AMX) # counts "R"
count_susceptible(example_isolates$AMX) # counts "S" and "I"
count_all(example_isolates$AMX) # counts "S", "I" and "R"
# be more specific
count_S(example_isolates$AMX)
count_SI(example_isolates$AMX)
count_I(example_isolates$AMX)
count_IR(example_isolates$AMX)
count_R(example_isolates$AMX)
# Count all available isolates
count_all(example_isolates$AMX)
n_sir(example_isolates$AMX)
# n_sir() is an alias of count_all().
# Since it counts all available isolates, you can
# calculate back to count e.g. susceptible isolates.
# These results are the same:
count_susceptible(example_isolates$AMX)
susceptibility(example_isolates$AMX) * n_sir(example_isolates$AMX)
# dplyr -------------------------------------------------------------
if (require("dplyr")) {
example_isolates %>%
group_by(ward) %>%
summarise(
R = count_R(CIP),
I = count_I(CIP),
S = count_S(CIP),
n1 = count_all(CIP), # the actual total; sum of all three
n2 = n_sir(CIP), # same - analogous to n_distinct
total = n()
) # NOT the number of tested isolates!
# Number of available isolates for a whole antibiotic class
# (i.e., in this data set columns GEN, TOB, AMK, KAN)
example_isolates %>%
group_by(ward) %>%
summarise(across(aminoglycosides(), n_sir))
# Count co-resistance between amoxicillin/clav acid and gentamicin,
# so we can see that combination therapy does a lot more than mono therapy.
# Please mind that `susceptibility()` calculates percentages right away instead.
example_isolates %>% count_susceptible(AMC) # 1433
example_isolates %>% count_all(AMC) # 1879
example_isolates %>% count_susceptible(GEN) # 1399
example_isolates %>% count_all(GEN) # 1855
example_isolates %>% count_susceptible(AMC, GEN) # 1764
example_isolates %>% count_all(AMC, GEN) # 1936
# Get number of S+I vs. R immediately of selected columns
example_isolates %>%
select(AMX, CIP) %>%
count_df(translate = FALSE)
# It also supports grouping variables
example_isolates %>%
select(ward, AMX, CIP) %>%
group_by(ward) %>%
count_df(translate = FALSE)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.