使用公式排序和添加新列你好,
我想按降序對 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" )
)
謝謝,
傑克
腳本編寫回复:使用公式排序和添加新列@txnelson
回复:使用公式排序和添加新列這是一個有效的腳本。請注意,由於 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));
回复:使用公式排序和添加新列幫助菜單下的腳本索引在這里為您提供了一些有用的信息。我以這種方式搜索“排序”:

如果您對用於 % Total 列的公式感到滿意,則可以使用腳本索引查找函數以在數據表中創建新列。或者,您可以使用腳本工具加載項將名為“複製列腳本”的功能安裝到 cols 菜單。 然後您只需選擇該列,複製腳本,然後將其粘貼到您的腳本中。 如果我理解您對該列的要求,儘管您可以將 N Row 列除以 N Row 列的總和。
把它們放在一起可能看起來像這樣:
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));