是否可以创建关联数组作为表变量,然后在列公式中使用存储的值?
作为正在进行的分析的一部分,我有一些相关变量需要编辑。这些变量将像列公式中的匹配函数一样使用。
例如:
- 创建表变量计数并将值设置为["a" => 10, "b" => 3, "c" => 1] 。
- 计数然后通过列公式引用,例如:计数[:列] 。其中:col是具有值“a”、“b”或“c”的字符列。
这可能吗?我正在使用 JMP 18.2.1。
我认为这符合你的要求:
New Table( "Untitled",
Add Rows( 3 ),
New Table Variable( "abc", "[\!"a\!"=>1, \!"b\!"=>2, \!"c\!"=>4]" ),
New Column( "Column 1",
Numeric,
"Nominal",
Format( "Best", 9 ),
Formula(
c_abc = As Constant( Eval( Parse( :abc ) ) );
c_abc["c"];
),
Set Selected
)
)
注意,表变量只是文本,因此会被解析和求值。AsConstant 函数使得它在整个列的求值过程中只需解析/求值一次,因此效率不会太低。
或者,您可以为关联数组的每个元素设置一个单独的表变量。这可能更容易编辑,但它不会像关联数组那样创建独立的命名空间。
如果要将名称用作列名,则另一种选择是使用自定义列属性。它们可能更难查找和编辑。与纯文本表变量不同,它们还包含表达式:
dt=New Table( "Untitled",
New Column( "Column 1",
Set Property( "xxxxx", ["a"=>42,"adfasdfasdf"=>77] )
)
);
(dt:column1<
<GETPROPERTY></GETPROPERTY>
<BR />
Craige 确实提供了一些不错的选项来实现这一点。这里有一个愿望清单,希望表变量能有更复杂的数据类型。让我们为表变量使用更复杂的数据类型,而不仅仅是文本和数字。
感谢@Craige_Hales ,您的解决方案非常有效。
谢谢@jthi ,我赞同这个建议。