如何按照从原始列中出现的顺序排列从列中获得的唯一值?
在查找列中的唯一值时,通常使用 `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)
自动化和脚本回复:如何按照从原始列中出现的顺序排列从列中获得的唯一值?这应该可行。
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];
回复:如何按照从原始列中出现的顺序排列从列中获得的唯一值?您可以将“值顺序”列属性设置为“行顺序级别”

然后,当您使用 Tables=>Summary 时,新的数据表将按行顺序输出

回复:如何按照从原始列中出现的顺序排列从列中获得的唯一值?带有 row() 变换列的汇总表是另一个选项(还有很多)
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);