Skip to contents

Join the data set microorganisms easily to an existing data set or to a character vector.

Usage

inner_join_microorganisms(x, by = NULL, suffix = c("2", ""), ...)

left_join_microorganisms(x, by = NULL, suffix = c("2", ""), ...)

right_join_microorganisms(x, by = NULL, suffix = c("2", ""), ...)

full_join_microorganisms(x, by = NULL, suffix = c("2", ""), ...)

semi_join_microorganisms(x, by = NULL, ...)

anti_join_microorganisms(x, by = NULL, ...)

Arguments

x

existing data set to join, or character vector. In case of a character vector, the resulting data.frame will contain a column 'x' with these values.

by

a variable to join by - if left empty will search for a column with class mo (created with as.mo()) or will be "mo" if that column name exists in x, could otherwise be a column name of x with values that exist in microorganisms$mo (such as by = "bacteria_id"), or another column in microorganisms (but then it should be named, like by = c("bacteria_id" = "fullname"))

suffix

if there are non-joined duplicate variables in x and y, these suffixes will be added to the output to disambiguate them. Should be a character vector of length 2.

...

ignored, only in place to allow future extensions

Value

a data.frame

Details

Note: As opposed to the join() functions of dplyr, character vectors are supported and at default existing columns will get a suffix "2" and the newly joined columns will not get a suffix.

If the dplyr package is installed, their join functions will be used. Otherwise, the much slower merge() and interaction() functions from base R will be used.

Examples

left_join_microorganisms(as.mo("K. pneumoniae"))
#> ℹ Function `as.mo()` is uncertain about "K. pneumoniae" (assuming
#>   Klebsiella pneumoniae). Run `mo_uncertainties()` to review this.
#> # A tibble: 1 × 16
#>   mo           fullname  kingdom phylum class order family genus species subsp…¹
#>   <mo>         <chr>     <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   <chr>  
#> 1 B_KLBSL_PNMN Klebsiel… Bacter… Prote… Gamm… Ente… Enter… Kleb… pneumo… ""     
#> # … with 6 more variables: rank <chr>, ref <chr>, species_id <dbl>,
#> #   source <chr>, prevalence <dbl>, snomed <list>, and abbreviated variable
#> #   name ¹​subspecies
left_join_microorganisms("B_KLBSL_PNMN")
#> # A tibble: 1 × 16
#>   mo           fullname  kingdom phylum class order family genus species subsp…¹
#>   <mo>         <chr>     <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   <chr>  
#> 1 B_KLBSL_PNMN Klebsiel… Bacter… Prote… Gamm… Ente… Enter… Kleb… pneumo… ""     
#> # … with 6 more variables: rank <chr>, ref <chr>, species_id <dbl>,
#> #   source <chr>, prevalence <dbl>, snomed <list>, and abbreviated variable
#> #   name ¹​subspecies

df <- data.frame(
  date = seq(
    from = as.Date("2018-01-01"),
    to = as.Date("2018-01-07"),
    by = 1
  ),
  bacteria = as.mo(c(
    "S. aureus", "MRSA", "MSSA", "STAAUR",
    "E. coli", "E. coli", "E. coli"
  )),
  stringsAsFactors = FALSE
)
#> ℹ Function `as.mo()` is uncertain about "E. coli" (assuming Escherichia
#>   coli) and "S. aureus" (assuming Staphylococcus aureus). Run
#>   `mo_uncertainties()` to review these uncertainties.
colnames(df)
#> [1] "date"     "bacteria"

df_joined <- left_join_microorganisms(df, "bacteria")
colnames(df_joined)
#>  [1] "date"       "bacteria"   "fullname"   "kingdom"    "phylum"    
#>  [6] "class"      "order"      "family"     "genus"      "species"   
#> [11] "subspecies" "rank"       "ref"        "species_id" "source"    
#> [16] "prevalence" "snomed"    

# \donttest{
if (require("dplyr")) {
  example_isolates %>%
    left_join_microorganisms() %>%
    colnames()
}
#> Joining, by = "mo"
#>  [1] "date"       "patient"    "age"        "gender"     "ward"      
#>  [6] "mo"         "PEN"        "OXA"        "FLC"        "AMX"       
#> [11] "AMC"        "AMP"        "TZP"        "CZO"        "FEP"       
#> [16] "CXM"        "FOX"        "CTX"        "CAZ"        "CRO"       
#> [21] "GEN"        "TOB"        "AMK"        "KAN"        "TMP"       
#> [26] "SXT"        "NIT"        "FOS"        "LNZ"        "CIP"       
#> [31] "MFX"        "VAN"        "TEC"        "TCY"        "TGC"       
#> [36] "DOX"        "ERY"        "CLI"        "AZM"        "IPM"       
#> [41] "MEM"        "MTR"        "CHL"        "COL"        "MUP"       
#> [46] "RIF"        "fullname"   "kingdom"    "phylum"     "class"     
#> [51] "order"      "family"     "genus"      "species"    "subspecies"
#> [56] "rank"       "ref"        "species_id" "source"     "prevalence"
#> [61] "snomed"    
# }