こんにちは、JMPチーム
選択した列のサブセットのみの並べ替えを許可することで、列の並べ替えコマンドを強化することは可能でしょうか?
ありがとう、
TS
申し訳ありませんが、この会話が続いていることに気づかず、今日コミュニティ サイトに戻ってきました。
行われたことに同意します。
ありがとう、
パット
アドインはコミュニティのファイル交換/アドインに投稿されており、レビュー待ちの状態です (2022 年 1 月 15 日以降)。
ここからアドインを取得することもできますGitHub - 選択した列を並べ替えるJMP-Tools Order Selected Columns.jmpaddin ファイルをダウンロードしてインストールします。
アドインの準備が整いました。 さらにテストを行った後、アドインを使用して、今日または週末に JMP コミュニティのディスカッション エリアに投稿を作成してみます。
インストール後、新しいサブメニューがアドイン メニューに追加されます (Cols メニューに追加することもできますが、これをアドインとして機能させるだけでも、今のところ十分な作業と手間がかかります)。
アドイン メニュー:

設定ウィンドウ:

追加できる可能性のあるもの:
- より多くの並べ替えオプション (JMP が既に提供しているものとすべて同じ)
- ツールバーを追加
- コルメニューへ移動
- オプションの実装後にコードが乱雑になったため、コードをリファクタリングする
- 以前の列順序の管理の改善
- と組み合わせる現在の列の順序とグループ化を保存?
わかりました。そのアドインに簡単な「設定」メニューを追加する方法を考えてみます。スクリプトが起動されたときにメニューを開くのは少し不必要だと思うからです。
このようなメニューを作成できますが、必要かどうかはわかりません:

これらのオプションは既にサポートされていますが、ユーザーはアドイン内の settings.json ファイルにある変更を行う必要があるため、変更を行うには小さな UI が必要です。
@jthi 、
この質問に並外れたスキルを適用していただき、ありがとうございます。
選択した列の列の並べ替えの動作に関しては、並べ替えられた列を並べ替えて再グループ化するのがデフォルトであり、並べ替えた列をそのままにしておくオプションがあることをお勧めします。
一番、
TS
列が選択されていない場合->現在の機能が選択されている列を使用することに同意します。
選択した列で列の順序付けをどのように行うべきだと思いますか? 選択した列のみを使用して並べ替えを行うか、最初に選択した列以外のすべての列を一緒に移動する必要があります (コードは既に作成していますが、テストする必要があります)。 私が求めていることを説明するためのいくつかの画像:
開始状況:

選択した列内のみの名前による並べ替え:

それらをグループ化しながら並べ替えます。

@jthi 、コードをありがとう!私はそれを使用します。
これはJMPの基本的な機能であるべきだと私たち二人は同意していると思います。「列 -> 列の並べ替え -> 名前による並べ替え」は、重複行の選択などの他の機能と同様に機能し、列が選択されていない場合、JMP はすべての列が同じ重複行を見つけます。ただし、列が選択されている場合、JMP はそれらの列でのみ重複行を検出します。
@pcarroll1グループ内の列を常にアルファベット順に並べたい場合は、それをスクリプト化できるはずです。
For Each を使用しているため、このスクリプトには JMP16 が必要です。 グループ内のデータテーブル内のすべてのグループの列をアルファベット順に並べる必要があります(特定のグループのみを並べ替えたい場合は、並べ替えたいグループの選択を追加できます)
Names Default To Here(1);
//Alphabetically order columns in groups JMP16
dt = Current Data Table();
col_groups = dt << Get Column Groups Names("String");
col_list = dt << Get Column Names("String");
For Each({col_group}, col_groups,
cols_in_group = dt << get column group(col_group);
//get index of first column in group
index_of_first = Contains(col_list, cols_in_group[1] << get name);
ordered_cols_in_group = Sort List(cols_in_group);
//fix indices
ordered_cols_in_group = ordered_cols_in_group;
dt << Move Selected Columns(ordered_cols_in_group, After(Column(dt, index_of_first)));
);前:

後:

テーブル例のスクリプト:
New Table("Untitled 3",
Add Rows(0),
New Column("a", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("b", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("x", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("a 2", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("c", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("b 2", Numeric, "Continuous", Format("Best", 12), Set Values([]), Set Display Width(82)),
New Column("z", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("a 3", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("x 2", Numeric, "Continuous", Format("Best", 12), Set Values([])),
Group Columns(:x, 4),
Group Columns(:z, 3)
)このウィッシュ リスト項目で要求されたことを実行できるアドインを作成するのはかなり簡単なはずです。もちろん、それを JMP に含めた方がよいでしょう。
しばらくこれをやりたかった。グループ内で列をアルファベット順に並べ替えると便利です。列グループに新しい列を追加することがありますが、手動で行わない限り名前が順序付けられないため、それらを見つけることが問題になります。