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"))
#> # A tibble: 1 × 22
#>   mo      fulln…¹ status kingdom phylum class order family genus species subsp…²
#>   <chr>   <chr>   <chr>  <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   <chr>  
#> 1 B_KLBS… Klebsi… accep… Bacter… Pseud… Gamm… Ente… Enter… Kleb… pneumo… ""     
#> # … with 11 more variables: rank <chr>, ref <chr>, source <chr>, lpsn <chr>,
#> #   lpsn_parent <chr>, lpsn_renamed_to <chr>, gbif <chr>, gbif_parent <chr>,
#> #   gbif_renamed_to <chr>, prevalence <dbl>, snomed <list>, and abbreviated
#> #   variable names ¹​fullname, ²​subspecies
left_join_microorganisms("B_KLBSL_PNMN")
#> # A tibble: 1 × 22
#>   mo      fulln…¹ status kingdom phylum class order family genus species subsp…²
#>   <chr>   <chr>   <chr>  <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   <chr>  
#> 1 B_KLBS… Klebsi… accep… Bacter… Pseud… Gamm… Ente… Enter… Kleb… pneumo… ""     
#> # … with 11 more variables: rank <chr>, ref <chr>, source <chr>, lpsn <chr>,
#> #   lpsn_parent <chr>, lpsn_renamed_to <chr>, gbif <chr>, gbif_parent <chr>,
#> #   gbif_renamed_to <chr>, prevalence <dbl>, snomed <list>, and abbreviated
#> #   variable names ¹​fullname, ²​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
)
colnames(df)
#> [1] "date"     "bacteria"

df_joined <- left_join_microorganisms(df, "bacteria")
colnames(df_joined)
#>  [1] "date"            "bacteria"        "fullname"        "status"         
#>  [5] "kingdom"         "phylum"          "class"           "order"          
#>  [9] "family"          "genus"           "species"         "subspecies"     
#> [13] "rank"            "ref"             "source"          "lpsn"           
#> [17] "lpsn_parent"     "lpsn_renamed_to" "gbif"            "gbif_parent"    
#> [21] "gbif_renamed_to" "prevalence"      "snomed"         

# \donttest{
if (require("dplyr")) {
  example_isolates %>%
    left_join_microorganisms() %>%
    colnames()
}
#> Joining, by = "mo"
#>  [1] "date"            "patient"         "age"             "gender"         
#>  [5] "ward"            "mo"              "PEN"             "OXA"            
#>  [9] "FLC"             "AMX"             "AMC"             "AMP"            
#> [13] "TZP"             "CZO"             "FEP"             "CXM"            
#> [17] "FOX"             "CTX"             "CAZ"             "CRO"            
#> [21] "GEN"             "TOB"             "AMK"             "KAN"            
#> [25] "TMP"             "SXT"             "NIT"             "FOS"            
#> [29] "LNZ"             "CIP"             "MFX"             "VAN"            
#> [33] "TEC"             "TCY"             "TGC"             "DOX"            
#> [37] "ERY"             "CLI"             "AZM"             "IPM"            
#> [41] "MEM"             "MTR"             "CHL"             "COL"            
#> [45] "MUP"             "RIF"             "fullname"        "status"         
#> [49] "kingdom"         "phylum"          "class"           "order"          
#> [53] "family"          "genus"           "species"         "subspecies"     
#> [57] "rank"            "ref"             "source"          "lpsn"           
#> [61] "lpsn_parent"     "lpsn_renamed_to" "gbif"            "gbif_parent"    
#> [65] "gbif_renamed_to" "prevalence"      "snomed"         
# }