根据单元格中特定单词的存在删除一行大家好!我认为对于许多使用来自各种仪器的数据文件的人来说,这可能是一种常见情况。我的数据集来自拼接来自特定仪器的多个输出文件。除了有用的数据行之外,每个输出文件顶部还有许多行指定配方、文件和其他信息,通常这些信息位于第 1 列中。对于处理数据,我不需要这些信息,所以我想删除第 1 列单元格中包含上述单词配方、文件等的不必要的行。请注意,同一单元格中可能还有其他单词,例如:“晶圆配方名称”或“阶段组文件”等。我尝试了以下几种排列,但我总是收到一条错误消息,提示:“发送需要可编写脚本的对象来访问“发送”的评估,等等。提前谢谢您!
dt_new2 << 获取行,其中(包含(:Column 1,“Recipe”));
dt_new2 << 删除行;
等待(1);
dt_new2 << 获取行,其中(包含(:Column 1,“文件”));
dt_new2 << 删除行;
等待(1)
自动化和脚本数据混合和清理回复:根据单元格中特定单词的存在删除一行尝试一下
Names Default To Here( 1 );
dt_new2 = Current Data Table();
dt_new2 << select where( Contains( :Column 1, "Recipe" ) );
dt_new2 << delete rows;
Wait( 0 );
dt_new2 << select where( Contains( :Column 1, "File" ) );
dt_new2 << delete rows;
脚本索引
帮助=>脚本索引
是语句语法和示例的重要来源。
另外,我建议您花时间阅读 JMP 帮助中的脚本指南
回复:根据单元格中特定单词的存在删除一行如果您只想使用 << Delete Rows 而不使用任何参数,则必须选择行(就像 Jim 所展示的那样)。另一个选项是将您的行收集到一个变量中并使用它(我首选的方法,因为它会跳过“不必要的”行选择,但如果您想调试,选择会更直观)
Names Default To Here(1);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "Recipe"));
dt_new2 << delete rows(rows_to_delete);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "File"));
dt_new2 << delete rows(rows_to_delete);
脚本索引中没有记录此行为,

但可以从 JSL 语法参考数据表消息 (jmp.com)和脚本指南删除行 (jmp.com)中找到(从脚本编辑器中搜索删除行并按主题帮助)
回复:根据单元格中特定单词的存在删除一行嗨,txnelson,谢谢你的回复!就像我说的,我尝试了很多相关命令,包括 select where + contains,但如果没有顶部的语句 Names default to here,这种方法以前是行不通的。这个例程现在对我有用了,非常感谢你的意见。干杯!
回复:根据单元格中特定单词的存在删除一行嗨,jthi,谢谢你的回复,我很感激。我总是提醒自己更多地依赖变量,但不幸的是,只有在没有其他选择时我才会这样做。这是一个很棒的建议,我相信它对很多人有用。干杯!
回复:根据单元格中特定单词的存在删除一行你也可以不使用变量来做到这一点,但我不建议这样做,因为如果出现任何问题,阅读起来会更加困难,调试起来也会更加困难
Names Default To Here(1);
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "Recipe")));
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "File")));