Datentabellenauswertung in For-Schleife aus einer ListeBei meinem Skript zum Umbenennen von Datentabellen mit einer For-Schleife tritt immer wieder ein Fehler auf.
Hier ist eine vereinfachte Version meines Skripts
OldNames = {"Alter Name 1", "Alter Name 2", "Alter Name 3"};
NewNames = {"Neuer Name 1", "Neuer Name 2", "Neuer Name 3"};
Für(
ich,
ich <= NNamen,
ich++,
dt = Datentabelle (alte Namen[i]);
dt << Name setzen (NewNames[i])
);
Ich bekomme immer folgende Fehlermeldung
Die Datentabelle kann beim Zugriff oder der Auswertung von 'Datentabelle' nicht gefunden werden, Datentabelle/*###*/( OldNames[i] )
Wenn ich jedoch die Datentabelle (OldNames[1]) auswerte, tritt kein Fehler auf!
DatentabelleBetreff: Datentabellenauswertung in For-Schleife aus einer ListeHallo,
Ich habe die ersten beiden Argumente der For-Schleife entsprechend geändert.Es sollte jetzt funktionieren:
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])
);
Betreff: Datentabellenauswertung in For-Schleife aus einer ListeIhnen scheint zumindest eine Definition für i (i = 1) zu fehlen, außerdem bin ich mir nicht sicher, was NNames ist.
Dies sollte ein funktionierendes Beispiel sein:
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])
);Betreff: Datentabellenauswertung in For-Schleife aus einer ListeTut mir leid, dass ich festgestellt habe, dass ich beim Vereinfachen die Teile meines Skripts verpasst habe.
NNames = NItems(NeueNamen);
und i=1 für das erste Argument in der For-Schleife.
Selbst wenn beide in meinem Skript richtig definiert sind, erhalte ich immer noch die gleiche Fehlermeldung
Betreff: Datentabellenauswertung in For-Schleife aus einer Liste@user8421 ,
Bist du erfolgreich gelaufen @jthi 's Skript?Wenn ja, vermute ich:
- einer oder mehrere Tische sind geschlossen
- einer oder mehrere der Tische sind privat
- falsche alte namen.
Unten ist eine leichte Modifikation zu @jthi 's Skript. Ich mache die dritte Tabelle privat und füge der For-Schleife show-Anweisungen hinzu.
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]);
);
Hier ist die Log-Ausgabe
/*:
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
Das JMP Scripting Guide gibt für private Tabelle an, dass
- Private Tabellen werden nicht gezählt, wenn N Table() die Anzahl der offenen Datentabellen zurückgibt.
- Private Tabellen können mit Current Data Table() nicht aktuell gemacht werden.
Dies ließ mich denken, dass eine private Tabelle möglicherweise nicht die gleiche Funktionalität hat und die Namen möglicherweise nicht im Speicher gespeichert sind, da sie nicht gezählt wird.
Viel Glück!
Betreff: Datentabellenauswertung in For-Schleife aus einer ListeVielen Dank.Es war ein Problem mit einem der Tabellennamen und einer Tabelle, die eine private Tabelle war.