RSTRING( ) 函数

返回由 R 函数或脚本计算的字符串值。R 中的数据处理存在于 Analytics 的外部。

语法

RSTRING(rScript|rCode, 长度 <,域|值 <,...n>>)

参数

名称 类型 描述
rScript | rCode

字符

R 脚本或一段要运行的 R 代码的完整或相对路径。

如果您直接输入 R 代码而不是使用外部文件,则不能在您的代码中使用引号字符,即使您对其进行转义:

  • 有效 'var <- "\"test\"" '
  • 无效 'var <- "\'test\'" '
长度 数值 要为返回字符串分配的长度。
域 | 值 <,...n>

可选

字符

数值

日期时间

逻辑

要用作 R 脚本或代码片段的参数的域、表达式或字面量值的列表。

这些值被按照您指定它们的顺序传递给您调用的函数,并且您在 R 代码中使用 value1, value2 ... valueN 来引用它们。

您可以根据需要包括任意数量的参数,以满足 R 代码中的函数定义的需要。

说明

请使用 ALLTRIM() 函数删除字符输入内容中的任何前导或结尾空格:ALLTRIM(str)。要了解更多信息,请参考ALLTRIM( ) 函数

输出

字符。

示例

基本示例

返回 "abc123":

RSTRING("print(paste(value1,value2,sep=""))",6,"abc","123")

高级示例

使用外部 R 脚本

将 x 和 y 连接为单个字符串(使用一个空格字符作为定界符):

RSTRING("a<-source('./sample.r');a[[1]]",50, FirstName, LastName)

外部 R 脚本 (sample.r):

conc <- function(x, y) {
    paste(x, y, sep=" ")
\}
print(conc(value1, value2))

使用存储在变量中的 R 代码

将 x 和 y 连接为单个字符串(使用一个空格字符作为定界符):

ASSIGN v_script = "conc <- function(x, y){paste(x, y, sep=' ')};conc(value1, value2)"
RSTRING(v_script, 50, FirstName, LastName)

使用 R 为表生成 UUID

您正在准备一个要上传到结果应用程序的异常表,并且您需要确保每个记录都具有唯一的标识符。要生成此域,您使用 R 中的 uuid 包为每个记录创建一个唯一的主键值:

EXTRACT RSTRING("uuid::UUIDgenerate()", 36) AS "id", first_name, last_name, birthdate TO export_table

提示

要安装 uuid 包,请打开 R.exe 并执行以下命令:

install.packages("uuid")

备注

从 R 返回数据

调用 R 脚本时,请使用 source 函数并且将返回对象分配给变量。然后,您可以从返回对象中访问从您的 R 函数返回的值:

# 'a' 保存响应对象,a[[1]] 访问数据值
"a<-source('c:\\scripts\\r_scripts\\sample.r');a[[1]]"

R 日志文件

Analytics 将 R 语言消息记录到项目文件夹中的 aclrlang.log 文件。使用此日志文件可调试 R 错误。

提示

该日志文件位于 Analytics Exchange 解析作业的结果文件夹中。

在 AX 服务器上运行外部 R 脚本

如果您正在编写要在 AX 服务器上运行的分析应用程序并且想要使用外部 R 脚本,请:

  1. 将该文件作为相关文件与分析应用程序一同上传。
  2. 使用 FILE 解析标记标识文件。
  3. 使用相对路径 ./文件名.r 引用文件。

说明

使用相关文件可确保在用 Analytics Exchange 运行 R 时,TomEE 应用服务器账户具有足够的权限访问文件。

ACL 脚本指南 14.1