使用 JSL 删除公式中引用的列/表变量你好,
如本文主题所述,我观察到当任一列具有函数或表变量是函数的一部分时,JSL 命令“删除列”或“删除表变量”不起作用。
当“手动”执行此操作时,会有一个额外的警告窗口,通知用户此类操作的后果并允许选择一个操作。
我知道这种行为是故意引入的,我对此完全没有意见。
我想问一下使用JSL删除列/表变量时是否有任何选项/参数/标志/命令可以绕过这个窗口?
谢谢你的帮助。
数据表脚本回复:使用 JSL 删除公式中引用的列/表变量我无法复制我所理解的您所询问的问题。以下脚本正在删除公式中的表变量和列以及每个公式中的函数。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << New Table Variable( "Days", 42 );
Wait( 5 );
dt << New Column( "test",
formula(
delTVar = Function( {theVar},
dt << Delete Table Variable( theVar )
);
rc = delTVar( "Days" );
:weight;
)
);
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
Wait( 5 );
dt << New Column( "test",
formula(
delCol = Function( {theCol},
dt << delete columns( theCol )
);
rc = delCol( "height" );
:weight;
)
);回复:使用 JSL 删除公式中引用的列/表变量我认为没有任何标志可以做到这一点。也许可以放一个愿望清单项目,我认为标志应该像交互式版本一样可配置,交互式版本要求删除引用、公式或取消(我可能还会添加 Throw)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("f", Numeric, Continuous, Formula(:height*weight));
dt << Delete Columns({"height", "weight"});
将打印到日志中:
当某些列被其余列的公式引用时,无法删除选定的列。
删除公式不会改变数据。删除引用会将每个引用替换为空值。这些效果是永久性的,无法撤消。
可编写脚本[]
您可以使用 Log Capture() 捕获此消息,然后执行一些 JSL 技巧来预先删除引用/公式。