來自列表的 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 循環中的數據表評估謝謝一堆。這是一個表名和一個表是私有表的問題。