运行 R 脚本
Concept Information
在外部 R 脚本中分析一个 Analytics 表,然后从 R 返回数据以便在该 Analytics 项目中创建一个新表。源数据作为您可以使用所提供的函数引用的数据帧被传递给 R。
在 R 中处理 Analytics 数据
如果您要准备 R 脚本以便从 Analytics 中运行,请自行熟悉一下在 Analytics 和 R 之间来回传递数据的方式。您必须在您的 R 脚本中使用 Analytics 提供的 R 函数才能成功运行 RCOMMAND。
在 R 脚本中引用 Analytics 数据
Analytics 表被作为 R 数据框架传递给脚本。数据框架是可能包含数据的不同模式或类型的表格式数据对象。
要在 R 脚本中使用由 Analytics 创建的数据框架,请调用 acl.readData() 函数并且在变量中存储所返回的数据框架:
# 在可以在整个脚本中引用的名为 myTable 的数据帧中存储该 Analytics 表
myTable<-acl.readData()
如需从数据框架中的单元格检索数据,请使用如下方法之一:
-
使用行和列坐标:
# 检索数据帧的第一行、第二列中的值
myTable[1,2]说明
坐标基于在命令中指定的域的顺序,而非当前打开的表布局或视图。
-
使用行和列名称:
# 检索该数据帧的第一行和“myColumnTitle”列中的值
myTable["1","myColumnTitle"]您必须指定该命令的 KEEPTITLE 选项才能使用列名称。
行被命名为“1”、“2”、“3”,并相应递增。您也可以使用名称和坐标的组合。
将数据传回 Analytics
要将一个数据帧或数据矩阵返回至 Analytics 并创建一个新表,请使用以下语法:
# 将 myNewTable 数据帧返回至 Analytics 以创建一个新表
acl.output<-myNewTable
说明
当 R 脚本终止时,您必须将数据帧或数据矩阵返回至 Analytics。请确保该数据帧或数据矩阵中的列仅包含原子值,而不包含列表、矩阵、数组或非原子对象。如果无法将这些值转换到 Analytics 数据类型,该命令会失败。
R 数据映射
Analytics 数据类型被使用 Analytics 项目和 R 脚本之间的转换流程转换为 R 数据类型:
| Analytics 数据类型 | R 数据类型 |
|---|---|
| 逻辑 | 逻辑 |
| 数值 | 数值 |
| 字符 | 字符 |
| 日期时间 | 日期,POSIXct,POSIXlt |
性能和文件大小限制
对于大小超过 1 GB 的输入数据,运行您的 R 脚本以及处理返回数据所花费的时间会增加。R 不支持大小不低于 2 GB 的输入文件。
被发送到 R 的记录数也会影响性能。对于两个具有相同文件大小和不同记录数的表而言,处理包含较少记录的表时更快一些。
处理多字节字符数据
如果要在多字节字符集(例如,中文)中向 R 发送数据,则必须在 R 脚本中适当地设定系统区域设置。要成功向 R 发送多字节数据表,则 R 脚本的第一行必须包含以下函数:
# 将区域设置设定为中文的示例
Sys.setlocale("LC_ALL","Chinese")
有关 Sys.setlocale( ) 的更多信息,请参阅 R 文档。
Hello world 示例
Analytics 命令
RCOMMAND FIELDS "Hello", ", world!"TO "r_result" RSCRIPT "C:\scripts\r_scripts\analysis.r"
R 脚本 (analysis.r)
srcTable<-acl.readData()
# 创建表并将其发送回 ACL
output<-data.frame(
c(srcTable[1,1]),
c(srcTable[1,2])
)
# 添加列名称并将该表发送回 ACL
colnames(output) <- c("Greeting","Subject")
acl.output<-output
运行 R 脚本
- 从主菜单中,选择分析 > R。
RCOMMAND 对话框将打开。
- 在 R 脚本域旁边,单击浏览并导航到您想要运行且位于您的计算机上的 R 脚本。
- 单击选择域并添加一个或更多个要包括在数据帧中的域。Analytics 使该数据帧可在 R 脚本中使用。
提示
您还可以将表达式作为域包括在该数据帧中。要创建表达式,请单击表达式,然后在该对话框中使用可供您使用的函数、域和运算符。有关详细信息,请参见表达式生成器概览。
- 可选。在 RCommand 选项部分,定义您想要如何将 Analytics 数据发送到 R 脚本。
有关详细信息,请参阅RCommand 选项。
- 可选。要过滤被发送给 R 脚本的记录,请单击如果并使用表达式生成器对话框创建一个要用作过滤器的条件表达式。
有关使用表达式生成器创建表达式的详细信息,请参见使用表达式生成器创建表达式。
- 要指定输出表,请单击到,然后在文件名域中输入该表和关联 .FIL 文件的名称。
使用文件夹资源管理器导航到您想要用来存储源数据文件的文件夹。
说明
Analytics 表名称限制为 64 个字母数字字符,且不包括 .FIL 扩展名。该名称可以包括下划线字符 ( _ ),但不能包括其他特殊字符或任何空格。该名称不能以数字开头。
- 可选。在该对话框的更多选项卡上,为该命令指定任何作用域选项。
有关详细信息,请参阅“更多”选项卡。
- 要运行该命令,请单击确定。
RCOMMAND 对话框选项
RCommand 选项
| 选项 | 描述 |
|---|---|
| 用域名导出 | 请使用源 Analytics 表的列标题作为 R 数据帧的标头值。此选项设置该命令上的 KEEPTITLE 选项。如果您想要在 R 脚本中使用列名称检索数据,则需要使用此选项。 |
| 列分隔符 | 要在向 R 发送数据时用作域之间分隔符的字符。 |
| 文本限定符 |
要在向 R 发送数据时用作标识域值的文本限定符的字符。 |
“更多”选项卡
| 选项 | 描述 |
|---|---|
| 全部 | 处理视图中的所有记录(默认选择)。 |
| 前 | 从表中的第一个记录开始处理,并且仅包括指定数量的记录。 |
| 下一页 |
从表中当前选定的记录开始处理,并且仅包括指定数量的记录。 说明 前或后 选项中指定的记录数参考表中记录的物理或索引顺序,不考虑对视图进行过滤或快速分类的情况。不过,解析操作的结果与任何过滤相关。 如果视图进行了快速分类,后和前操作相同。 注意 在运行 RCOMMAND 时,当前版本的“后”存在一个已知的问题。请避免使用此选项,否则记录索引可能重置到第一个记录,而无论选择了哪个记录。 |
| While |
使用 WHILE 语句根据相应的条件限制对主表中记录的处理。 仅当指定的条件评估为真时,才对视图中的记录进行处理。当条件变为假时,处理立即终止,不再考虑剩余的记录。有关详细信息,请参见使用表达式生成器创建表达式。 |