列から取得した一意の値を元の列に表示される順序に並べるにはどうすればよいでしょうか?
列内の一意の値を探す場合、`summarize()` がよく使用されます。しかし、`summarize()` によって出力される値はソートされており、以下の JSL では {"64", "67", "74",..., "172"} のように出力されます。出力を列内の出現順に並べたいのですが、例えば {"95", "123", "74",...} のようにしたいのですが、どのような変更を加えるべきでしょうか?
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
summarize(unique_values=by(weight));
show(unique_values)
自動化とスクリプトRe: 列から取得した一意の値を元の列に表示される順序に並べるにはどうすればよいでしょうか?これでうまくいくはずです。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Duplicate Rows( Match( :weight ) );
dt << Invert Row Selection;
sl = dt << Get Selected Rows;
unique_vals = dt:weight[sl];
Re: 列から取得した一意の値を元の列に表示される順序に並べるにはどうすればよいでしょうか?値の順序列プロパティを行順序レベルに設定できます。

そして、テーブル=>サマリーを使用すると、新しいデータテーブルは行順序で出力されます。

Re: 列から取得した一意の値を元の列に表示される順序に並べるにはどうすればよいでしょうか?row() の変換列を含むサマリーテーブルはもう 1 つのオプションです (他にもたくさんあります)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt << Summary(
Group(:weight),
Min(Transform Column("Row", Formula(Row()))),
Freq("None"),
Weight("None"),
statistics column name format("column"),
private
);
dt_summary << Sort(By(:Row), Replace Table, Order(Ascending));
unique = dt_summary[0, 1];
Close(dt_summary, no save);
show(unique);