mirror of
https://github.com/msberends/AMR.git
synced 2025-07-08 11:51:59 +02:00
extend vctrs support
This commit is contained in:
46
R/vctrs.R
46
R/vctrs.R
@ -64,7 +64,10 @@ vec_ptype2.ab.character <- function(x, y, ...) {
|
||||
y
|
||||
}
|
||||
vec_cast.character.ab <- function(x, to, ...) {
|
||||
unclass(x)
|
||||
as.character(x)
|
||||
}
|
||||
vec_cast.ab.character <- function(x, to, ...) {
|
||||
return_after_integrity_check(x, "antimicrobial code", as.character(AMR_env$AB_lookup$ab))
|
||||
}
|
||||
|
||||
# S3: mo
|
||||
@ -75,7 +78,10 @@ vec_ptype2.mo.character <- function(x, y, ...) {
|
||||
y
|
||||
}
|
||||
vec_cast.character.mo <- function(x, to, ...) {
|
||||
unclass(x)
|
||||
as.character(x)
|
||||
}
|
||||
vec_cast.mo.character <- function(x, to, ...) {
|
||||
return_after_integrity_check(x, "microorganism code", as.character(AMR::microorganisms$mo))
|
||||
}
|
||||
|
||||
# S3: disk
|
||||
@ -88,15 +94,49 @@ vec_ptype2.disk.integer <- function(x, y, ...) {
|
||||
vec_cast.integer.disk <- function(x, to, ...) {
|
||||
unclass(x)
|
||||
}
|
||||
vec_cast.disk.integer <- function(x, to, ...) {
|
||||
as.disk(x)
|
||||
}
|
||||
vec_cast.double.disk <- function(x, to, ...) {
|
||||
unclass(x)
|
||||
}
|
||||
vec_cast.disk.double <- function(x, to, ...) {
|
||||
as.disk(x)
|
||||
}
|
||||
vec_cast.character.disk <- function(x, to, ...) {
|
||||
unclass(x)
|
||||
}
|
||||
vec_cast.disk.character <- function(x, to, ...) {
|
||||
as.disk(x)
|
||||
}
|
||||
|
||||
# S3: mic
|
||||
vec_cast.character.mic <- function(x, to, ...) {
|
||||
as.character(x)
|
||||
}
|
||||
vec_cast.double.mic <- function(x, to, ...) {
|
||||
# this calls as.double.mic()
|
||||
as.double(x)
|
||||
}
|
||||
vec_cast.mic.double <- function(x, to, ...) {
|
||||
as.mic(x)
|
||||
}
|
||||
vec_cast.mic.character <- function(x, to, ...) {
|
||||
as.mic(x)
|
||||
}
|
||||
vec_math.mic <- function(.fn, x, ...) {
|
||||
.fn(as.double(x), ...)
|
||||
}
|
||||
|
||||
# S3: rsi
|
||||
vec_ptype2.character.rsi <- function(x, y, ...) {
|
||||
x
|
||||
}
|
||||
vec_ptype2.rsi.character <- function(x, y, ...) {
|
||||
y
|
||||
}
|
||||
vec_cast.character.rsi <- function(x, to, ...) {
|
||||
as.character(x)
|
||||
}
|
||||
vec_cast.rsi.character <- function(x, to, ...) {
|
||||
as.rsi(x)
|
||||
}
|
||||
|
38
R/zzz.R
38
R/zzz.R
@ -116,24 +116,44 @@ if (utf8_supported && !is_latex) {
|
||||
s3_register("ggplot2::fortify", "mic")
|
||||
s3_register("ggplot2::fortify", "disk")
|
||||
# Support vctrs package for use in e.g. dplyr verbs
|
||||
s3_register("vctrs::vec_ptype2", "ab.character")
|
||||
s3_register("vctrs::vec_ptype2", "character.ab")
|
||||
s3_register("vctrs::vec_cast", "character.ab")
|
||||
s3_register("vctrs::vec_ptype2", "mo.character")
|
||||
s3_register("vctrs::vec_ptype2", "character.mo")
|
||||
s3_register("vctrs::vec_cast", "character.mo")
|
||||
s3_register("vctrs::vec_ptype2", "ab_selector.character")
|
||||
# S3: ab_selector
|
||||
s3_register("vctrs::vec_ptype2", "character.ab_selector")
|
||||
s3_register("vctrs::vec_ptype2", "ab_selector.character")
|
||||
s3_register("vctrs::vec_cast", "character.ab_selector")
|
||||
s3_register("vctrs::vec_ptype2", "ab_selector_any_all.logical")
|
||||
# S3: ab_selector_any_all
|
||||
s3_register("vctrs::vec_ptype2", "logical.ab_selector_any_all")
|
||||
s3_register("vctrs::vec_ptype2", "ab_selector_any_all.logical")
|
||||
s3_register("vctrs::vec_cast", "logical.ab_selector_any_all")
|
||||
s3_register("vctrs::vec_ptype2", "disk.integer")
|
||||
# S3: ab
|
||||
s3_register("vctrs::vec_ptype2", "character.ab")
|
||||
s3_register("vctrs::vec_ptype2", "ab.character")
|
||||
s3_register("vctrs::vec_cast", "character.ab")
|
||||
s3_register("vctrs::vec_cast", "ab.character")
|
||||
# S3: mo
|
||||
s3_register("vctrs::vec_ptype2", "character.mo")
|
||||
s3_register("vctrs::vec_ptype2", "mo.character")
|
||||
s3_register("vctrs::vec_cast", "character.mo")
|
||||
s3_register("vctrs::vec_cast", "mo.character")
|
||||
# S3: disk
|
||||
s3_register("vctrs::vec_ptype2", "integer.disk")
|
||||
s3_register("vctrs::vec_ptype2", "disk.integer")
|
||||
s3_register("vctrs::vec_cast", "integer.disk")
|
||||
s3_register("vctrs::vec_cast", "disk.integer")
|
||||
s3_register("vctrs::vec_cast", "double.disk")
|
||||
s3_register("vctrs::vec_cast", "disk.double")
|
||||
s3_register("vctrs::vec_cast", "character.disk")
|
||||
s3_register("vctrs::vec_cast", "disk.character")
|
||||
# S3: mic
|
||||
s3_register("vctrs::vec_cast", "character.mic")
|
||||
s3_register("vctrs::vec_cast", "double.mic")
|
||||
s3_register("vctrs::vec_cast", "mic.character")
|
||||
s3_register("vctrs::vec_cast", "mic.double")
|
||||
s3_register("vctrs::vec_math", "mic")
|
||||
# S3: rsi
|
||||
s3_register("vctrs::vec_ptype2", "character.rsi")
|
||||
s3_register("vctrs::vec_ptype2", "rsi.character")
|
||||
s3_register("vctrs::vec_cast", "character.rsi")
|
||||
s3_register("vctrs::vec_cast", "rsi.character")
|
||||
|
||||
# if mo source exists, fire it up (see mo_source())
|
||||
if (tryCatch(file.exists(getOption("AMR_mo_source", "~/mo_source.rds")), error = function(e) FALSE)) {
|
||||
|
Reference in New Issue
Block a user