JSL keep命令保留想要的变量并删除不需要的变量?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我正在寻找一个 JSL 脚本命令来仅“保留”指定的列变量,并删除当前数据表中的所有其他变量。
这将是指定命令的逆操作: dt << Delete Columns( :A, :B, ... :N);
理想情况下,更有效的 keep 命令应如下所示:
dt = 当前数据表( );
dt << 保留列 (:time, :day, :location);
(结果=删除所有不等于的列:时间、:日期、:地点)。
谢谢。
回复:JSL keep 命令保留想要的变量并删除不需要的变量?JMP 14 中的 JSL 添加了更直接的方法。 选择列、反转列选择和删除列可以完成所需的操作。
dt = open("$SAMPLE_DATA\Big Class.jmp");
a = {"height", "weight"};
dt << select columns(a);
dt << invert column selection;
b = dt << get selected columns;
dt << delete columns(b);回复:JSL keep 命令保留想要的变量并删除不需要的变量?可能一个更简单、易于手动执行(并且易于编写脚本)的解决方案是仅对数据进行子集化。
选择要保留的列,然后使用选定列(1) 选项进行子集化。当数据表变大时,这应该也比上面描述的方法更快,但我没有测试过。

回复:JSL keep 命令保留想要的变量并删除不需要的变量?谢谢。是我们上面的脚本很有帮助。
与创建新数据表相比,我稍微修改了一下以在当前数据表中进行操作,例如数据表(“name_here”),结果是成功的。
回复:JSL keep 命令保留想要的变量并删除不需要的变量?在他们将其添加到 JSL 之前,您可以尝试以下操作:
回复:删除不在列表中的列
它可以进一步开发,在使用表更新命令之前我发现它非常有用。
在更新表之前,删除具有相同名称但您不希望更新的列非常有用。 下面将通过定义要保留的列来完成此操作。
dt10 = New Table( "Test",
Add Rows( 10 ),
New Column( "A" ),
New Column( "B" ),
New Column( "C" ),
New Column( "D" )
);
Keep = {"A", "C"};
todelete = dt10 << get column names( "string" );
For( in = 1, in <= N Items( Keep ), in++, <BR />// assuming the to keep list is shorter than the list of columns in the table.
location = Contains( todelete, Keep[in]) ; // find the location of the keepers
if (location > 0, Remove From( todelete, location, 1 ) // if found remove it
));
if (nitems (todelete) > 0, dt10 << delete columns( todelete )); <BR />// if there is a delete list delete the columns from the table
如果您向开发团队询问此命令,请要求他们对行进行相同的操作。
最好的
罗恩
回复:JSL keep 命令保留想要的变量并删除不需要的变量?我假设您正在提出功能增强请求。如果您将此提交至
support@jmp.com