使用列表中的列名称创建列公式你好,
我有一个简单的脚本,我想在其中创建一个新列,其中公式计算另一列的绝对值。
该列在列表中被引用。
我尝试了几种不同的方法,但我不知道如何评估引用的列,因此我最终得到一个空的公式列。 任何建议将不胜感激。
最好的
塞巴斯蒂安
dt=New Table( "test",
Add Rows( 4 ),
New Column( "symbol",
Character,
"Nominal",
Set Values( {"a", "b", "c", "d"} ),
Set Display Width( 55 )
),
New Column( "fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [-3, -0.4, 0.4, 3] ),
Set Display Width( 68 )
)
);
l={"fold change"};
try(New Column( "absolute fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Abs( l[1] )
)));
try(New Column( "absolute fold change 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( eval(column(l[1]) )
)));
质量和工艺工程回复:使用列表中的列名称创建列公式没问题。 昨天我遇到了同样的问题,我花了一段时间才弄清楚。
实际上我也刚刚了解到另一种解决方案。
“As Column()”函数将返回指定为参数的列中当前行的值。
因此该公式同样可以采用如下格式:
公式(
Abs( 作为列( l[1] ) );
);
很简约!回复:使用列表中的列名称创建列公式非常感谢,我尝试了您提出的选项,但有一个很大的区别:没有空括号。
最好的,
塞巴斯蒂安回复:使用列表中的列名称创建列公式dt=New Table( "test",
Add Rows( 4 ),
New Column( "symbol",
Character,
"Nominal",
Set Values( {"a", "b", "c", "d"} ),
Set Display Width( 55 )
),
New Column( "fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [-3, -0.4, 0.4, 3] ),
Set Display Width( 68 )
)
);
l = {"fold change"};
try(New Column( "absolute fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Abs( column( l[1] )[] )
)));由于您的列表仅包含字符串,因此您需要使用 Column( "" )[ ] 函数告诉 JMP 该字符串是列名。
空白方括号是必要的,如果没有它们,公式将引用整列而不仅仅是适当的行。
希望这有帮助,
莱因