Spotfire® 用户指南

编写数据函数

数据函数是由内部 Spotfire 数据引擎之外的其他引擎执行的计算。作为脚本作者,您可以通过将数据函数定义保存到库中来创建数据函数,组织中的其他作者可以在自己的分析中重用这些数据函数。创建数据函数时,可以编写详尽的描述以及使用定义明确的参数名称或显示名称来帮助其他人并提高共享效率。

关于此任务

数据函数作者通常会将数据函数添加到特定分析中,以帮助最终用户了解应如何使用该数据函数,并纳入特定数据源或所需字段的实际映射。

在开始创建自己的数据函数之前,请阅读什么是数据函数?来了解各种概念。了解数据函数定义(包括脚本和参数)和数据函数实例(在 Spotfire 分析中使用数据函数时,数据函数实例是定义的输入和输出的映射)之间的区别尤其重要。

开始之前

数据函数必须使用已安装的客户端进行编写。

一般工作流程

本节介绍创建数据函数时的一般工作流程。

过程

  1. 创建并注册数据函数定义。开始时,您可以使用自己喜欢的工具,但是,定义了脚本后,请使用“注册数据函数”对话框来定义应如何在 Spotfire 中使用参数。
  2. 将数据函数保存到库中(适用时)。
  3. 通过从 f(x) 浮出控件 “文件和数据” 浮出控件或(在已安装的客户端中)“数据函数属性”对话框中的“插入”运行数据函数实例,来将其添加到分析中。
    如果您要向分析中的文本区域添加操作控件,则需要执行此步骤。也可以使用“注册数据函数”对话框中的“运行”,但请注意,每次运行数据函数时,都会向文档添加一个新的数据函数实例。如果需要,您可以在“数据画布”的分析中编辑数据函数实例。
    注: 通常,您应该在分析中只保留数据函数的一个实例并编辑该实例的定义,而不是多次运行同一数据函数定义。如果您在开发和测试期间添加了多个实例,请确保通过从数据画布或“数据函数属性”对话框中删除不必要的实例来清理分析。
  4. 运行数据函数时,将输入和输出参数映射到当前分析。
  5. 如果必须调整脚本或更改参数,请从“数据画布”编辑数据函数,而不是插入新实例。
  6. 将完成的数据函数定义保存到库中,以供其他人重用。
    将数据函数定义保存在库中后,可以使用任何客户端将其添加到其他分析中。

脚本语言

数据函数通常基于在 Spotfire® Enterprise Runtime for R(又名 TERR™)下运行的 R 脚本,但也可以基于开源 R 脚本或 Python 脚本。“注册数据函数”对话框中的可用类型取决于您有权访问的计算引擎。有关如何配置这些引擎的信息,请参见相应的服务文档,或联系 Spotfire 管理员。

关于此任务

  • 要使用 TERR,可以使用 Spotfire 安装中提供的本地引擎,或者使用安装在 Spotfire Server 可用节点上的 Spotfire® Enterprise Runtime for R - 服务器版本(TERR 服务)。
  • 要使用 Python,您可以使用本地安装的 Python 或安装在 Spotfire Server 可用节点上的 Spotfire® Service for Python。安装的 Spotfire 客户端包含一个 python.exe,但您也可以在“工具” > “选项” > “数据函数”下更改为使用其他安装。有关如何使用 Python 的详细信息,请阅读文档 Spotfire® 中的 Python 数据函数
  • 要使用开源 R,请使用安装在 Spotfire Server 可用节点上的 Spotfire® Service for R
    注: 开放源 R 在遵守单独的开源软件许可条款的前提下提供,并不是 Spotfire 的一部分。因此,开放源 R 不在您的 Spotfire 的许可范围内。Cloud Software Group, Inc. 不以任何形式对开放源 R 提供支持、维护或保证。对开放源 R 的下载和使用由您全权决定,且需遵守适用于开放源 R 的免费开源许可条款。
  • 要使用 Statistica(包含在 Spotfire Data Science 许可证中),请使用本地 Statistica 引擎或安装在 Spotfire Server 可用节点上的 Spotfire Service for Statistica(也称为 Statistica Service)。Statistica 数据函数与其他数据函数的不同之处在于,您可以将在 Statistica 中创建的工作区在 Spotfire 中显示为数据函数。此操作使用“Statistica 集成”(从“工具” > “Statistica”进行访问)来完成。
    注: 无法使用“注册数据函数”对话框创建任何 Statistica 数据函数。
    有关如何使用这些类型的数据函数的详细信息,请参见 Spotfire 与 Statistica 集成;有关 Statistica 的常规信息,请参见 Statistica 帮助

有关服务的系统要求的信息,请访问 https://spotfi.re/sr

开始使用

可以通过以下方法定义开源 R 数据函数:根据相应 Spotfire Service for R 中的现有函数定义;或直接在“注册数据函数”对话框中编写脚本,然后使用相应的引擎运行脚本(对于 R 函数,可以使用 TERR 引擎或开源 R 引擎)。其他类型的数据函数始终基于脚本。

关于此任务

为确保快速响应和良好的用户体验,请避免从 Spotfire 向统计引擎发送过大的数据集,或调用运行时间很长的复杂计算。

提示: 如果您使用开源 R 或 Spotfire Enterprise Runtime for R 开发脚本,则可以使用 RStudio,这是一种功能全面的开源集成开发环境,可用来处理 R 代码。它并不由 Cloud Software Group, Inc. 提供。但是,您可以为 Spotfire Enterprise Runtime for R 引擎配置 RStudio 以及查看其语言参考。此外,您还可以从文档站点访问 Spotfire Enterprise Runtime for R 语言参考。
注: 只能在相互支持的平台上将 Spotfire Service for R 与 RStudio 一起使用。请参见两种产品的系统要求进行确认。

示例 1:创建并运行简单的 R 脚本数据函数

对列中的值进行从摄氏度到华氏度的简单转换。尽管使用“添加计算的列”可轻松完成该操作,但这个简单示例可以详细地说明输入参数和输出参数的处理。

过程

  1. 假定 Spotfire 中的数据表包含以摄氏度表示的温度。
  2. 在菜单栏上选择“工具” > “注册数据函数”
  3. “类型”下,选择“R 脚本 - 开源 R”“R 脚本 - Spotfire Enterprise Runtime for R”
  4. 输入合适的脚本“描述”。例如,“此脚本将温度单位从摄氏度转换为华氏度。”。
    当运行库中的数据函数时,描述将显示在用户界面中。
  5. “脚本”选项卡中定义要执行转换的脚本:
    # Define the convertTemperature function:
    convertTemperature <- function(x)
    {
      x*(9/5) + 32
    }
    # Run the function to produce the output:
    out <- convertTemperature(x);
  6. 将输入参数 x 定义为包含允许的数据类型“整数”和“实数”的列。

    提示: 您可以在“脚本”选项卡上选择参数,右键单击,然后使用弹出式菜单选项“输入参数”直接访问“输入参数”对话框。

    还请记住,您在此处添加的任何描述都可以帮助其他人在以后运行或编辑数据函数时做出正确的选择。

  7. 将输出参数 out 定义为列。

    提示: 您可以在“脚本”选项卡上选择参数,右键点击,然后使用弹出式菜单选项“输出参数”直接访问“输出参数”对话框。
    请注意,输出显示名称不会传播到输出列名称。列名称始终是由 R 脚本指定的输出。
  8. 将该数据函数作为温度转换程序保存到库。
  9. 要运行计算以及将输入参数和输出参数连接到 Spotfire 中的当前数据,请在编写栏上单击“文件和数据”,然后通过搜索标题或合适的关键字找到所需的数据函数。
    注: 每次您运行数据函数时,都会在文档中创建一个新实例。如果以后要使用其他输入或输出测试数据函数,请从“数据画布”编辑实例,而不是再次运行它。
    要找到库中的所有数据函数,请在搜索字段中输入 type:datafunction。还可以添加名称的一部分来查找特定的数据函数。要添加需要数据表或列输入的数据函数,首先必须将一些数据加载到分析中。
  10. 指定输入参数 x 应为列,并选择要转换的数据表和列。请注意,当运行数据函数时,您为数据函数本身以及为输入和输出值输入的描述会显示在用户界面中。

  11. 单击“确定”
  12. 在汇总视图中,选择如何添加新数据(添加为新数据表还是添加为现有数据表中的新列),完成后单击“确定”

结果

将执行数据函数计算,并按照指定的设置添加新列。您可以通过在“数据画布”中找到数据函数(使用任何客户端)或选择“数据” > “数据函数属性”(仅限已安装的客户端)来更改参数设置或稍后刷新计算。

示例 2:创建数据函数时的考量因素

如果要使用的函数为主组件分析 (PCA) 计算,则输入将为从 Spotfire 中当前数据检索的一些数值数据列,以及(可选)指定要由主组件保留的百分比变量的一个参数。

关于此任务

输出将包括三个新数据表(得分、加载项和特征值/可释方差表)以及指示生成的主组件数的标量。

您可以在 Spotfire 社区中找到大量数据函数。