透過另一列設定值順序或值標籤我遇到了一個棘手的數值排序/標記問題。請參閱附件。數據來自氣相層析儀。關鍵的順序並非化合物名稱的字母順序,而是保留時間(RT)。共有31種化合物,因此手動對化合物列進行數值排序,或手動標記保留時間或分子量列的數值,都會非常繁瑣且容易出錯。任何處理色譜或光譜數據的人可能都會遇到同樣的問題…
是否有通過對話方塊的方式,以另一列為參考來設定值標籤或順序?
或者,有沒有人有可以實現這個功能的腳本?
我還發布了匿名化後的資料表版本。
先致謝!
資料融合與清理回覆:透過另一列設定值順序或值標籤此方法假定您需要手動新增“MW Order”列,因此它只會查看“RT”列。無需對表格進行排序。
Names Default To Here( 1 );
dt << New Column( "Order", numeric, Formula( Col Rank( :R.T. ) ) );
order_list = {};
Wait( 0 );
For Each( {{k, v}, i}, Associative Array( :Order, :Component ), Insert Into( order_list, v ) );
Eval( Eval Expr( :Component << Set Property( "Value Order", {Custom Order( Expr( order_list ) )}, Common Order( 0 ) ) ) );
dt << Delete Columns( "Order" );
回覆:透過另一列設定值順序或值標籤謝謝!它按預期工作了*
* 需要加入為第 2 行:dt = Current Data Table ();
回覆:透過另一列設定值順序或值標籤哇,這是一種非常優雅的將一列的順序映射到另一列的方法!
order_list={};
For Each( {{k, v}, i}, Associative Array( :Order, :Component ), Insert Into( order_list, v ) );
- Associative Array 帶有列引用:
Associative Array( :Order, :Component ) !!! (--> find the documentation)
automatically: duplicates get skipped, entries ... ordered by keys
- For Each( {{k, v}, i} ... -> {v}
作為一種替代方案:
Associative Array( :Order, :Component ) << get values
回覆:透過另一列設定值順序或值標籤你也可以手動完成這項操作。
建立匯總表(根據需要使用統計資料)

對資料進行排序

設定匯總表中指定列的值順序

從匯總表複製列屬性,並貼上到原始表中。


(我使用的是修改後的腳本版本)
回覆:透過另一列設定值順序或值標籤儘管我經常使用關聯數組,但我仍然會忘記 <
回覆:透過另一列設定值順序或值標籤應用案例:
依郵遞區號對各州(名稱=縮寫)進行排序:
圖表改造:麻疹熱力圖
回覆:透過另一列設定值順序或值標籤@多發性硬化症提出的替代方案
如何按另一列值對 x 軸進行排序
總結 + 排名索引