回复:知道为什么在 JMP17 中更改了移动选定列与列表一起使用的原因吗?加入讨论以了解这是否是错误。
这可能会破坏列管理器加载项中的功能。
https://community.jmp.com/t5/JMP-Add-Ins/MES-data-retrieval-add-in-Aspentech-IP-21-and-Osisoft-PI-Aveva/ta-p/540841

回复:知道为什么 Move Selected Columns 与列表一起工作在 JMP17 中发生了变化吗?这样做是为了修复崩溃。 不幸的是,事实证明它会产生意想不到的后果。
它不是按名称对列进行排序,而是保持它们的原始顺序。 无论您如何排列给定列表中的列移动选定的列() , 移动的列将保持它们相对于彼此的原始顺序。 因此,如果您有一个包含列 a、b、c 和 d 的表,按该顺序,那么两者移动选定的列({:b, :a}, To Last)和移动选定的列({:a, :b}, To Last)将导致列被排序为 c、b、a、b。
正如您所发现的,一个公认的不方便的解决方法是发出多个“移动选定列”命令。 所以要获得顺序 c, d, b, a 你可以打电话移动选定的列({:b},到最后)然后移动选定的列({:a},到最后) .
这将是固定的。
回复:知道为什么 Move Selected Columns 与列表一起工作在 JMP17 中发生了变化吗?也很可能打破这个订购选定的色谱柱(即使使用 JMP16 似乎也有一些错误)。
可能必须开始对仅特定版本可用的加载项添加限制(使用多个加载项进行管理会很麻烦...)。
回复:知道为什么在 JMP17 中更改了移动选定列与列表一起使用的原因吗?您是否已联系支持人员以检查此更改是否有意为之?
回复:知道为什么在 JMP17 中更改了移动选定列与列表一起使用的原因吗?我目前还没有任何回应。
知道为什么 Move Selected Columns 与列表一起工作在 JMP17 中发生了变化吗?刚刚注意到我的分析列不适用于 JMP17,甚至更糟的是它会返回不正确的数据。 问题是 JMP17 改变了“移动选定列”处理列表的方式。
Names Default To Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp");
list = {"sex", "name"};
wait(1);
dt << Move Selected Columns(list, To Last);
show(JMP Version());
通过这个简单的示例,您可以看到 JMP17 忽略了列表中项目的顺序(或者更确切地说按字母顺序排序?)
JMP16:

JMP17:

我可以想出很多方法来处理这个问题,但我不确定是否必须这样做
Names Default To Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp");
list = {"sex", "name", "age", "weight", "height"};
If(Num(Word(1, JMP Version(), ".")) < 17,
dt << Move Selected Columns(list, To Last);
, // else
first_col = Remove From(list, 1);
dt << Move Selected Columns(first_col, To First);
For Each({col}, list,
Eval(EvalExpr(
dt << Move Selected Columns({Expr(col)}, To Last);
));
);
);数据混合和清理实验设计视窗回复:知道为什么在 JMP17 中更改了移动选定列与列表一起使用的原因吗?嗨大卫,
我想知道:列排序问题解决了吗?
回复:知道为什么在 JMP17 中更改了移动选定列与列表一起使用的原因吗?雅尔莫,
我最近升级到 JMP 17 后刚刚遇到这个问题。 这是非常令人沮丧的,因为我正在移动大型列块(8 列/块),总共 24 列。
我想尝试您的解决方案,但即使在查看了脚本索引之后,仍然没有完全理解您的“For Each”语句。那么它基本上是查看列表 {col} 中的每个元素,并将其移动到列表的末尾吗?
尼尔
回复:知道为什么在 JMP17 中更改了移动选定列与列表一起使用的原因吗?它将按顺序将项目移动到列表的末尾(因此第一个项目会被移到最后,因为第一个项目 -> 最后会成为第一个)。 如果您想要进行不同类型的重新排序(例如对适当的列列表进行重新排序),则脚本将需要进行一些更改。
这可能已在 JMP17.2 中得到修复,至少我现在使用初始脚本得到了不同的结果

回复:知道为什么在 JMP17 中更改了移动选定列与列表一起使用的原因吗?非常感谢贾莫!
我也能够让它与这个片段一起工作。
list = {:a, :b, :c, :d};
lst_num = NItems(list);
For(kk = 1, kk < list_num, kk++,
dt << Move Selected Columns({list[kk+1]}, After(list[kk]) );
);