Skip to contents

This tries to find a column name in a data set based on information from the antibiotics data set. Also supports WHONET abbreviations.

Usage

guess_ab_col(
  x = NULL,
  search_string = NULL,
  verbose = FALSE,
  only_rsi_columns = FALSE
)

Arguments

x

a data.frame

search_string

a text to search x for, will be checked with as.ab() if this value is not a column in x

verbose

a logical to indicate whether additional info should be printed

only_rsi_columns

a logical to indicate whether only antibiotic columns must be detected that were transformed to class <rsi> (see as.rsi()) on beforehand (defaults to FALSE)

Value

A column name of x, or NULL when no result is found.

Details

You can look for an antibiotic (trade) name or abbreviation and it will search x and the antibiotics data set for any column containing a name or code of that antibiotic. Longer columns names take precedence over shorter column names.

Examples

df <- data.frame(
  amox = "S",
  tetr = "R"
)

guess_ab_col(df, "amoxicillin")
#> [1] "amox"
# [1] "amox"
guess_ab_col(df, "J01AA07") # ATC code of tetracycline
#> [1] "tetr"
# [1] "tetr"

guess_ab_col(df, "J01AA07", verbose = TRUE)
#> Auto-guessing columns suitable for analysis
#> ...
#>  OK.
#> ℹ Using column 'amox' as input for AMX (amoxicillin).
#> ℹ Using column 'tetr' as input for TCY (tetracycline).
#> ℹ Using column 'tetr' as input for J01AA07 (tetracycline).
#> [1] "tetr"
# NOTE: Using column 'tetr' as input for J01AA07 (tetracycline).
# [1] "tetr"

# WHONET codes
df <- data.frame(
  AMP_ND10 = "R",
  AMC_ED20 = "S"
)
guess_ab_col(df, "ampicillin")
#> [1] "AMP_ND10"
# [1] "AMP_ND10"
guess_ab_col(df, "J01CR02")
#> [1] "AMC_ED20"
# [1] "AMC_ED20"
guess_ab_col(df, as.ab("augmentin"))
#> [1] "AMC_ED20"
# [1] "AMC_ED20"

# Longer names take precendence:
df <- data.frame(
  AMP_ED2 = "S",
  AMP_ED20 = "S"
)
guess_ab_col(df, "ampicillin")
#> [1] "AMP_ED2"
# [1] "AMP_ED20"