Tibco SpotFire - 使用 R 数据函数检查下拉列表“(none)”选项
Tibco SpotFire - checking for drop-down list "(none)" option with R data function
我正在使用 Tibco Spotfire。在文本区域中,我通过 Insert property control
添加了一个下拉列表,其中包含以下相关参数:
Control type: Drop-down list
Set property value through: Unique values in column
(Chose a column in a data table. The values populating the column are strings.)
Include (None) alternative: checked
属性 控件的目的是为使用 R 编码的数据函数提供输入。数据函数基本上对输入数据 table 执行一些求和,其中项目求和在求和之前通过 属性 控件过滤。
我想要一个 (None)
替代选项作为避免过滤的选项,如果用户这样选择的话。但是,我不知道如何检查是否选择了 (None)
选项。例如,假设在 R 函数中,链接到 属性 控件的变量称为 var_1
。我想要一些代码:
# pseudo R code
# Note: the code below is to demonstrate my question, it's not the exact shape of the code I'm actually using.
if (var_1 == (None)) { # this is the line I don't know how to express, since I don't know how Tibco populates a (None) value
do not filter stuff.
}
对于 if
语句,我已经尝试过:
if (var_1 == "") {...}
if (var_1 == "(None)") {...}
if (var_1 == "(none)") {...}
if (is.na(var_1)) {...}
无论我选择哪个,在这种情况下应该包括所有内容的总和实际上什么都不包括。
通常我可以通过在下拉列表中选择 (None)
后将 var_1
的数据类型打印到控制台来解决这个问题。当我尝试这样做时,任何地方都不会弹出控制台输出。
如果选择 (none)
,SpotFire 会使用什么数据填充 var_1
,或者更重要的是,我在这里需要的 if 语句是什么?
谢谢。
应该是NA。可能它在您第一次尝试时未设置。
调试此类情况的一种有用方法是:
- 发表这样的声明:
save.image('C:/Debug/myscript.RData')
作为 TERR 脚本的第一条语句,其中 C:/Debug 只是一个文件夹示例。只要存在,任何名字都可以。
- 运行 您在 Spotfire 中生成图像文件的脚本,如果它给出错误并不重要,只要它通过该语句
- 将您的脚本复制并粘贴到指向 TERR 的 RStudio 中
- 将 save.image 替换为加载(或只需双击图像文件)
- 运行 逐行脚本 and/or 检查环境,您应该在其中看到 var_1.
要在 TERR 上打开 RStudio,您可以从 Spotfire 中转到“工具”>“TERR 工具”>“启动 RStudio”IDE。它将打开 RStudio,指向您当前 运行 在 Spotfire 中使用的 TERR 版本。您可以通过 运行ning 'version' 语句来验证它。
我正在使用 Tibco Spotfire。在文本区域中,我通过 Insert property control
添加了一个下拉列表,其中包含以下相关参数:
Control type: Drop-down list
Set property value through: Unique values in column
(Chose a column in a data table. The values populating the column are strings.)
Include (None) alternative: checked
属性 控件的目的是为使用 R 编码的数据函数提供输入。数据函数基本上对输入数据 table 执行一些求和,其中项目求和在求和之前通过 属性 控件过滤。
我想要一个 (None)
替代选项作为避免过滤的选项,如果用户这样选择的话。但是,我不知道如何检查是否选择了 (None)
选项。例如,假设在 R 函数中,链接到 属性 控件的变量称为 var_1
。我想要一些代码:
# pseudo R code
# Note: the code below is to demonstrate my question, it's not the exact shape of the code I'm actually using.
if (var_1 == (None)) { # this is the line I don't know how to express, since I don't know how Tibco populates a (None) value
do not filter stuff.
}
对于 if
语句,我已经尝试过:
if (var_1 == "") {...}
if (var_1 == "(None)") {...}
if (var_1 == "(none)") {...}
if (is.na(var_1)) {...}
无论我选择哪个,在这种情况下应该包括所有内容的总和实际上什么都不包括。
通常我可以通过在下拉列表中选择 (None)
后将 var_1
的数据类型打印到控制台来解决这个问题。当我尝试这样做时,任何地方都不会弹出控制台输出。
如果选择 (none)
,SpotFire 会使用什么数据填充 var_1
,或者更重要的是,我在这里需要的 if 语句是什么?
谢谢。
应该是NA。可能它在您第一次尝试时未设置。
调试此类情况的一种有用方法是:
- 发表这样的声明: save.image('C:/Debug/myscript.RData') 作为 TERR 脚本的第一条语句,其中 C:/Debug 只是一个文件夹示例。只要存在,任何名字都可以。
- 运行 您在 Spotfire 中生成图像文件的脚本,如果它给出错误并不重要,只要它通过该语句
- 将您的脚本复制并粘贴到指向 TERR 的 RStudio 中
- 将 save.image 替换为加载(或只需双击图像文件)
- 运行 逐行脚本 and/or 检查环境,您应该在其中看到 var_1.
要在 TERR 上打开 RStudio,您可以从 Spotfire 中转到“工具”>“TERR 工具”>“启动 RStudio”IDE。它将打开 RStudio,指向您当前 运行 在 Spotfire 中使用的 TERR 版本。您可以通过 运行ning 'version' 语句来验证它。