1

有没有人写过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")
  ....}
4

1 回答 1

0

对于那些现在发现这个问题的人......现在有许多 R 接口可用,包括https://github.com/KxSystems/rkdb,它具有 kdb+ 类型的映射。文档在自述文件中,在https://code.kx.com/q/interfaces/with-r/#calling-q-from-r

于 2018-11-17T04:00:34.290 回答