別の列による値の順序または値ラベルの設定値の順序付けとラベル付けに関して、興味深い問題があります。添付ファイルをご覧ください。データはガスクロマトグラフから取得しています。重要なのは化合物名のアルファベット順ではなく、保持時間(RT)です。化合物は31種類あります。化合物列の値の順序付け、あるいはRT列またはMW Order列の値のラベル付けを手動で行うのは面倒で、間違いも発生しやすくなります。クロマトグラフデータやスペクトルデータを扱う方なら、おそらく同じ問題を抱えているでしょう。
別の列を参照として参照することで値のラベルや順序を設定するためのダイアログ駆動型の方法はありますか?
あるいは、これを実行できるスクリプトを持っている人はいますか?
匿名化されたバージョンのデータテーブルも投稿しました。
前もって感謝します!
データのブレンドとクリーンアップ別の列による値の順序または値ラベルの設定この方法では、「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
別の列による値の順序または値ラベルの設定手動でもできます
要約表を作成する(必要に応じて統計を使用する)

データを並べ替える

要約テーブルで順序付けしたい列に値の順序を設定します

要約テーブルから列プロパティをコピーし、元のテーブルに貼り付けます。


(私はこのプロセスを修正したスクリプト版を使用します)
別の列による値の順序または値ラベルの設定連想配列を扱うことが多いのですが、それでも<
別の列による値の順序または値ラベルの設定応用事例:
州名(略称)を郵便番号で並べ替えます。
グラフの作り直し:麻疹ヒートマップ
別の列による値の順序または値ラベルの設定@MSによる代替ソリューション
X軸を別の列の値で並べ替える方法
要約 + ランク付けインデックス