你好,
我試圖通過腳本添加一個公式來轉換選定列中的值,而不必在數據表中添加任何新列,有沒有辦法通過腳本編輯列的公式? 例如,我試圖將此數據表中的高度列設置為在運行腳本時減半:
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()。 根據需要使用表達式函數訪問和修改表達式。