你好,
我试图通过脚本添加一个公式来转换选定列中的值,而不必在数据表中添加任何新列,有没有办法通过脚本编辑列的公式? 例如,我试图将此数据表中的高度列设置为在运行脚本时减半:
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
Current Data Table() << Get Column Names;
height = height/2;
当用作列公式时,您指定的公式是递归的。只要检测到列中的更改,列公式就会运行。
您所建议的可以简单地在开放的 JSL 中完成。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
Current Data Table() << Get Column Names;
height = height/2;
或者
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
For( i = 1, i <= N Rows( current data table() ), i++,
:height[i] = :height[i] / 2
);
或者
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:Height << set values( dt[0, 4] / 2 );
如果公式不是递归的,可以使用设置公式消息设置列公式
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
Current Data Table() << Get Column Names;
:height << set formula(:weight/2);
我强烈建议您花时间阅读 JMP 文档库中帮助下拉菜单下的脚本指南
数据列公式只是按行计算的 JSL 表达式。 您可以使用数据列消息 << Get Formula() 和 << Set Formula()。 根据需要使用表达式函数访问和修改表达式。