R如何调用kdb+?
kdb+可与不同的软件进行交互,本文主要介绍在R中调用kdb+的方式,python、excel、sas、stata、spark、vfp等软件与kdb+的交互方式可参考《kdb+中文教程》第十章问答中的相关内容。(详细内容也可查阅kdb+官方帮助Using R with kdb+ https://code.kx.com/q/interfaces/r/ )通过https://cran.r-project.org/mirrors.html 选择访问速度较快的镜像站下载R,各镜像站提供内容完全相同,国内推荐清华大学镜像站(https://mirrors.tuna.tsinghua.edu.cn/CRAN/)。在页面上点击Download R for Windows –> base -> Download R x.x.x(版本号) for Windows 链接即可下载,下载后安装到D:\KDB\R\目录(假设,下同)RStudio是主流R语言集成开发环境之一,其界面相较于R的原生界面更为友好易用,在绘图、调试、库管理、工作空间管理等方面提供较好支持。其提供个人免费版(开源)、商业版、云端版等多种版本使用,一般用户选择个人免费版即可。访问RStudio下载页面(https://rstudio.com/products/rstudio/download/),下载RStudio Desktop并安装,安装过程中RStudio会自动检测系统上已安装的R,并提示用户选择合适的版本(32/64位)与之绑定。此部分主要介绍通过Rkdb包实现由R向kdb的访问。if('qserver' %in% rownames(installed.packages())) remove.packages('qserver')if(! 'devtools' %in% rownames(installed.packages())) install.packages('devtools')install_github('kxsystems/rkdb', quiet=TRUE,INSTALL_opts=c("--no-multiarch"))若无法在程序中直接访问github,也可以通过https://github.com/KxSystems/rkdb 下载安装包后通过intall_local命令进行本地安装。Rkdb的本质是实现R与q的进程间通信。为了在R中使用q,需要首先启动q进程,例:h <- open_connection("127.0.0.1",5001,"user: password")execute(h, “t: ([] x:1000#`a`b`c;y:1000#1f*til 10;z:1000#1f*til 4); select sum y, dev z by x from t”)
if(! 'ggplot2' %in% rownames(installed.packages())) install.packages('ggplot2')ggplot(data = execute(h, "t: ([] time:til 100; close: 100*exp sums (-0.5+100?1.0)%30); select from t"),需要将R中的变量传输到q中进行运算并返回结果时,可以在execute函数中添加变量:DF1 <- data.frame(x=c('x','x','y','y'), y=1:4)DF2 <- data.frame(x=c('x','y','z'), z=seq(10,30,10))execute(h, "{[x;y] x lj `x xkey y}", DF1, DF2)特别地,也可以通过这种方法将R中的数据传回kdb:DF3 <- data.frame(a = 1:5, b =rep(“a”, 5))execute(h, “{`tmp1 set x}”, DF3)来源 https://www.modb.pro/db/212287