腳本表按用戶定義的列排序警告 - 腳本新手@工作。 我正在編寫一個腳本,其中一部分按用戶選擇的列(通過 ColList 選擇和 Eval List 獲得)對數據表進行排序。
這不起作用,它會彈出我不想要的排序對話框:
dt << Sort( By(_userCol), Order(Ascending), Replace Table);
當我將鼠標懸停在 _userCol 上時,指定的列將顯示在腳本窗口中。如果我使用確切的列名稱,它可以在不彈出“排序”對話框的情況下工作:
dt << Sort( By(:Timestamp), Order(Ascending), Replace Table);
如何使用變量 _userCol 編寫此腳本?
謝謝!
回复:腳本表按用戶定義的列排序剛剛在另一個線程上得到它。
1.首先添加列表檢查
Column( 數據表( "Summary" ),"ITEM") << 設置屬性(列表檢查,summary_items);
2. 進行表排序。
https://community.jmp.com/t5/Discussions/Custom-Sort-Order/td-p/3119
回复:腳本表按用戶定義的列排序嗯……有點。
如果您為要排序的列設置“值排序”列屬性,然後按該列排序,則結果排序將根據指定的順序進行排序。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt:name << set property(
"value ordering",
{"ALICE", "BARBARA", "CHRIS", "ALFRED", "CLAY", "DAVID", "EDWARD", "CAROL", "AMY", "ELIZABETH", "DANNY",
"HENRY", "JACLYN", "JAMES", "JANE", "JEFFREY", "JOE", "JOHN", "KIRK", "LAWRENCE", "JUDY", "FREDERICK",
"LEWIS", "KATIE", "LESLIE", "LINDA", "MARION", "MARK", "LILLIE", "LOUISE", "MARY", "MICHAEL", "PATTY",
"WILLIAM", "SUSAN", "PHILLIP", "MARTHA", "ROBERT", "TIM"}
);
dt << sort( by( :name ), order( ascending ), replace table( 1 ) );回复:腳本表按用戶定義的列排序你好先生,
如果我可以按預定義列表而不是升序或降序對錶進行排序,是否可以?例如
dt = open("$sample_data\Big Class.jmp");
_userCol = "name";
dt << Sort( By(column(dt, _userCol)), Order(Descending), Replace Table);<BR /><BR />instead of the above, i like to order the table by name in a order given by "list" below?
list={"BARBARA","ALFRED","CHRIS","ALICE","AMY","CAROL","CLAY","DANNY","DAVID","EDWARD","ELIZABETH","FREDERICK","HENRY","JACLYN","JAMES","JANE","JEFFREY","JOE","JOHN","JUDY","KATIE","KIRK","LAWRENCE","LESLIE","LEWIS","LILLIE","LINDA","LOUISE","MARION","MARK","MARTHA","MARY","MICHAEL","PATTY","PHILLIP","ROBERT","SUSAN","TIM","WILLIAM"};回复:腳本表按用戶定義的列排序<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />謝謝。 解決了我的問題。 隨後了解了在公式中使用列時如何使用 As Column(_usercol)。
回复:腳本表按用戶定義的列排序您需要使用柱子函數或評估功能:
dt = open("$sample_data\Big Class.jmp");
_userCol = "age";
dt << Sort( By(column(dt, _userCol)), Order(Ascending), Replace Table);
或者
dt << Sort( By(eval(_userCol)), Order(Ascending), Replace Table);