R API

DolphinDB 提供了 R API 便于用户通过 R 语言操作 DolphinDB。DolphinDB R API 是由 R 和 C++ 实现的,使用的 C++ 包是 Rcpp。

DolphinDB R API支持以下功能:

  • 运行脚本
  • 执行DolphinDB中的函数
  • 上传变量到DolphinDB

依赖

  • R ( ≥ 3. 2. 0)
  • Rcpp ( ≥ 0. 12. 17)

安装

准备 R 环境

  • Linux系统:

    • 执行 sudo apt-get install r-base 安装R
    • 或者从 R官网 手动下载安装
  • Windows系统:

    • R官网 下载并安装 R API 和 rtools

安装时需要配置好环境变量和路径。

进入 R 命令行

在终端或命令行中输入 R 进入 R 命令行。

安装 devtools

在R命令行中输入install.packages("devtools"),选择最近的镜像下载并安装。

通过 devtools 安装 DolphinDB R API

在 R 命令行中输入 devtools::install_github("dolphindb/api-r"),系统自动会下载并安装 DolphinDB R API 以及它所依赖的包。

如果在 Windows 系统上安装时出现 Warning in system(cmd) : 'make' not found. 的错误信息,可以在 R 命令行中执行以下代码。安装完成后,程序包将由 g++ 自动编译和链接。

Sys.setenv(PATH = paste("*InstallDirectory*/Rtools/bin", Sys.getenv("PATH"), sep=";"))
Sys.setenv(BINPREF = "*InstallDirectory*/Rtools/mingw_64/bin") 

使用DolphinDB R API

假设 DolphinDB 运行在主机名为 localhost,端口号为 8848 的服务器上,我们可以通过以下方式来连接 DolphinDB、上传对象和执行脚本:

library(RDolphinDB)
conn <- dbConnect(DolphinDB(), "localhost", 8848)
if (conn@connected) {
    dbUpload(conn, c("val1", "val2"), list(3.5, c(1.3, 2.6, 3.7)))
    res_run <- dbRun(conn, "1 2 3")
    res_rpc <- dbRpc(conn, "size", list(c(1, 2, 3)))
    print(res_run)
    print(res_rpc)
}
dbClose(conn)

数据类型支持一览

R API 支持的 DolphinDB 数据类型如下:

DolphinDB类型DolphinDB中数据示例R语言类型R语言中数据示例说明
BOOLfalseLogicalFALSE
CHAR'A'Integer65
SHORT32Integer32
INT1Integer1
LONG100000Numeric10000因为R的整形最大就是2147483647
DATE2013.06.13Date2013-06-13
MONTH2013.08MDate2013-08-01指定为当月第一天
TIME13:30:10.008POSIXct1970-01-01 13:30:10指定为1970.01.01那天的该时刻
MINUTE13:30mPOSIXct1970-01-01 13:30:00指定为1970.01.01那天的该时刻
SECOND13:30:10POSIXct1970-01-01 13:30:10指定为1970.01.01那天的该时刻
DATETIME2012.06.13T13:30:10POSIXct2012-06-13 13:30:10
TIMESTAMP2012.06.13T13:30:10.008POSIXct2012-06-13 13:30:10
NANOTIME13:30:10.008007006POSIXct1970-01-01 13:30:10指定为1970.01.01那天的该时刻
NANOTIMESTAMP2012.06.13T13:30:10.008007006POSIXct2012-06-13 13:30:10
FLOAT2.1fNumeric2.1
DOUBLE2.1Numeric2.1
STRING“123”character“123”
SYMBOL[“123”, “123”]factor[“123”, “123”]
BLOB 不支持
DATEHOUR 不支持

注意

  • R内置的时间类型分为日期(Date)和日期+时间(POSIXct)两种,没有单独时间类型。并且只精确到秒。

  • DolphinDB 将数据存储为 SYMBOL 类型时,R API 会将其解析为 factor 类型;当数据重复度不高时,即使已将列类型声明为 SYMBOL ,若 DolphinDB 内部采用 STRING 类型存储,则 R API 会将其解析为 character。

更多函数介绍

在R命令行中执行 help 函数可以获取更多 DolphinDB R API 中函数的用法。

# About the package
help(package = "RDolphinDB")

# About the functions
help("DolphinDB")
help("dbConnect")
help("dbRun")
help("dbRpc")
help("dbUpload")
help("dbClose")

更多关于 DolphinDB 内置函数的用法,请查阅:函数参考