来自列表的 For 循环中的数据表评估我在使用 For 循环重命名数据表的脚本中不断遇到错误。
这是我的脚本的简化版本
OldNames = {"旧名 1", "旧名 2", "旧名 3"};
NewNames = {"新名称 1", "新名称 2", "新名称 3"};
为了(
一世,
我 <= NNames,
我++,
dt = 数据表(OldNames[i]);
dt << 设置名称(NewNames[i])
);
我不断收到以下错误
无法在“数据表”的访问或评估中找到数据表,数据表/*###*/( OldNames[i] )
但是,当我评估 Data Table(OldNames[1]) 时,没有错误!
数据表回复:来自列表的 For 循环中的数据表评估你好,
我相应地更改了 For 循环的前两个参数。它现在应该可以工作:
OldNames = {"Old Name 1", "Old Name 2", "Old Name 3"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(
i=1,
i <= NItems(NewNames),
i++,
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i])
);
回复:来自列表的 For 循环中的数据表评估您似乎至少缺少 i (i = 1) 的定义,我也不确定 NNames 是什么。
这应该是工作示例:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt = Open("$SAMPLE_DATA/Quality Control/Failures3Delimited.jmp");
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
OldNames = {"Big Class", "Failures3Delimited", "Semiconductor Capability"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(i = 1, i <= N Items(OldNames), i++,
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i])
);回复:来自列表的 For 循环中的数据表评估抱歉,我意识到我在简化时确实错过了脚本的某些部分。
NNames = NItems(NewNames);
对于 For 循环中的第一个参数,i=1。
即使在我的脚本中正确定义了这两个,我仍然会收到相同的错误消息
回复:来自列表的 For 循环中的数据表评估@user8421 ,
你成功运行了吗@jthi的剧本?如果是,那么我怀疑:
- 一张或多张桌子已关闭
- 一张或多张桌子是私人的
- 错误的旧名称。
下面稍微修改一下@jthi的脚本。 我将第三个表设为私有,并将 show 语句添加到 For 循环中。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt = Open("$SAMPLE_DATA/Quality Control/Failures3Delimited.jmp");
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp", "Private");
OldNames = {"Big Class", "Failures3Delimited", "Semiconductor Capability"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(i = 1, i <= N Items(OldNames), i++,
show(i, OldNames[i], NewNames[i]);
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i]);
);
这是日志输出
/*:
i = 1;
OldNames[i] = "Big Class";
NewNames[i] = "New Name 1";
i = 2;
OldNames[i] = "Failures3Delimited";
NewNames[i] = "New Name 2";
i = 3;
OldNames[i] = "Semiconductor Capability";
NewNames[i] = "New Name 3";
Cannot locate data table in access or evaluation of 'Data Table' , Data Table/*###*/(OldNames[i])
at line 11 in Script.jsl
JMP 脚本指南指出私有表
- N Table() 返回打开数据表的数量时,不计算私有表。
- 不能使用 Current Data Table() 使私有表成为当前表。
这让我觉得私有表可能没有相同的功能,可能没有存储在内存中的名称,因为它没有被计算在内。
祝你好运!
回复:来自列表的 For 循环中的数据表评估谢谢一堆。这是一个表名和一个表是私有表的问题。