<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一个脚本,可以在数据表中添加几列并创建一些图表。 第一次运行脚本时,我想创建新列,但我希望能够在已经添加了列的数据表上再次运行脚本,并且只创建图表。 我正在想象一个“IF”语句,它检查某个列是否存在或计算表中的列数。 任何人都可以告诉我如何做这些事情和/或以不同的方式编写我正在寻找的内容吗?
谢谢。
这在 JMP 中(谢天谢地)非常容易。您可以将所有列名称发送到列表。
下面的脚本获取表中列的名称。然后它检查表中是否存在用户提供的列名列表 - 如果存在列名,则会向日志窗口写入一条消息。不用过多想象就可以看到,如果表中没有新列名,For循环中的IF()条件就发生了变化,从而创建了新列。
名称默认为 Here(1);
清除日志();
bigClass = try(Open("$SAMPLE_DATA/Big Class.JMP"));
dt = 当前数据表(); // 最顶层窗口中的表名;
tblcols=dt << 获取列名(字符串);
mynewcols = {"height","weight","bmi"}; //小写或不匹配
将列表排序为(mynewcols);
dt << 开始数据更新;
write("\!N脚本开始。\!N");
For(i=1,i<=n items(tblcols),i++,
mycol = 修剪(小写(tblcols )); //这里是强制小写
myloc = contains(mynewcols,mycol);
如果(myloc != 0,
write("Column ", mycol, " 已经存在于表中。\!N");
从(mynewcols,myloc,1)中删除;
继续()
);
); // for循环结束
dt << 结束数据更新;
尝试(关闭(DT));
write("脚本结束。\!N");
// 在日志窗口中查看输出;