使用公式排序和新增列你好,
我想按降序對 N 行列進行排序,並新增一個新列來顯示 N 行總數的百分比。請幫我解決jsl腳本

<< Summary(
Group(
:Open VIO,
:Open SCLK,
:Open SDATA,
:Open USID,
:Open RF1,
:Open RF2,
:Open RF3,
:Open RF4,
:Open RFC
),
Freq( "None" ),
Weight( "None" )
)
謝謝,
傑克
自動化和腳本編寫回复:使用公式排序和添加新列“幫助”菜單下的腳本索引在這里為您提供了一些有用的信息。我這樣搜索“排序”:

如果您對用於 % Total 列的公式感到滿意,則可以使用腳本索引查找函數以在數據表中創建新列。或者,您可以使用腳本工具加載項以將名為“複製列腳本”的功能安裝到 cols 菜單。 然後您只需選擇該列,複製腳本並將其粘貼到您的腳本中。 如果我理解您對該列的要求,儘管您可以將 N 行列除以列 N 行的總和。
把它們放在一起可能看起來像這樣:
Names default to here(1);
// The function from your example:
dtSummarized = dt << << Summary(
Group(
:Open VIO,
:Open SCLK,
:Open SDATA,
:Open USID,
:Open RF1,
:Open RF2,
:Open RF3,
:Open RF4,
:Open RFC
),
Freq( "None" ),
Weight( "None" )
);
// dtSummarized = Current Data Table();
// From Scripting Index
dtSummarized << Sort( replace table, By( :N Rows ), Order( Descending ) );
// From Scripting Tools Add-in
New Column("% Total", Numeric, "Continuous", Format("Percent", 12, 2), Formula(:N Rows / Col Sum(:N Rows)), Set Display Width(44));
回复:使用公式排序和添加新列這是一個有效的腳本。請注意,由於 JMP 將生成您需要的 jsl,因此當您以交互方式運行時,您應該能夠創建自己的代碼。
Data Table( "original data" ) << Summary(
Group(
:Open VIO, :Open SCLK, :Open SDATA, :Open USID, :Open RF1, :Open RF2,
:Open RF3, :Open RF4, :Open RFC
),
"% of Total"n,
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 ),
output table( "Summarized Table" )
);
Data Table( "Summarized Table") << sort(by(:N Rows), order(descending), replace table(1));
回复:使用公式排序和添加新列@txnelson