リストからのForループでのデータテーブルの評価Forループを使用してデータテーブルの名前を変更するスクリプトでエラーが発生し続けます。
これが私のスクリプトの簡略版です
OldNames = {"Old Name 1"、 "Old Name 2"、 "Old Name 3"};
NewNames = {"新しい名前1"、 "新しい名前2"、 "新しい名前3"};
にとって(
私、
i <= NNames、
i ++、
dt =データテーブル(OldNames [i]);
dt << Set Name(NewNames [i])
);
次のエラーが発生し続けます
'データテーブル'、データテーブル/ * ### * /(OldNames [i])のアクセスまたは評価でデータテーブルが見つかりません
ただし、Data Table(OldNames [1])を評価しても、エラーはありません。
データ表Re:リストからのForループでのデータテーブル評価こんにちは、
それに応じて、Forループの最初の2つの引数を変更しました。これで動作するはずです:
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])
);
Re:リストからの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])
);Re:リストからのForループでのデータテーブル評価申し訳ありませんが、簡略化中にスクリプトの一部を見逃してしまったことに気付きました。
NNames = NItems(NewNames);
Forループの最初の引数はi = 1です。
スクリプトで両方が正しく定義されていても、同じエラーメッセージが表示されます
Re:リストからのForループでのデータテーブル評価@ user8421 、
正常に実行されましたか@jthiのスクリプト?はいの場合、私は疑っています:
- 1つ以上のテーブルが閉じています
- 1つ以上のテーブルがプライベートです
- 間違った古い名前。
以下は、わずかな変更です。 @jthiのスクリプト。 3番目のテーブルをプライベートにし、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()を使用してプライベートテーブルを最新にすることはできません。
これにより、プライベートテーブルには同じ機能がない可能性があり、カウントされないため、名前がメモリに保存されていない可能性があると思いました。
幸運を!
Re:リストからのForループでのデータテーブル評価本当にありがとう。これは、テーブル名の1つと1つのテーブルがプライベートテーブルであるという問題でした。