我正在使用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编码的数据函数提供输入。数据函数基本上对输入数据表执行一些求和,其中求和的项在求和之前通过属性控件进行过滤。
我想要一个(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替换为load(或者双击图像文件)
- 逐行运行脚本和/或检查环境,在那里应该可以看到var1
要在TERR上打开RStudio,您可以从Spotfire中进入Tools>TERR Tools>Launch RStudioIDE。它将打开RStudio,指向您当前在Spotfire中运行的TERR版本。您可以通过运行"version"语句来验证它。