有没有人写过R
类型到q
原子类型的完整转换?
就像是:
as.qsymbol <- function(x) UseMethod("as.qsymbol")
as.qboolean <- function(x) UseMethod("as.qboolean")
as.qsymbol.character <- function(x)
structure(paste0('`$("',paste0(paste0(x,collapse = '";"'), '")')), class="qsymbol")
as.qboolean.logical <- function(x)
structure(ifelse(x==TRUE,"1b","0b"), class="qboolean")
允许写
as.qboolean(c(TRUE, FALSE))
# [1] "1b" "0b"
# attr(,"class")
# [1] "qboolean"
as.qsymbol(c("foo", "bar baz"))
# [1] "`$(\"foo\";\"bar baz\")"
# attr(,"class")
# [1] "qsymbol"
或者更通用的自动检测:
as.qtype <- function(x) {
if(class(x) %in% "logical") return(as.qboolean(x))
if(class(x) %in% "numeric")
....}