„Ausgewählte Zeilen abrufen“ führt zu einem Fehler, wenn die Zeilen verwendet werdenHey,
Ich kann nicht herausfinden, warum Folgendes zu einem Fehler führt:
For( i = 1, i <= N Items(list), i++,
item = list[i];
rows = dt << Get Rows Where(
dt:foo == item
);
Column(dt, "bar" )[rows] = "foobar";
);
Der Fehler ist:
„Der Wert für die Spalte ‚bar‘ kann nicht festgelegt werden, da die Zeilennummer (-1) ungültig ist.{941}“
Kann mich jemand aufklären?
Danke schön!
Betreff: „Ausgewählte Zeilen abrufen“ führt zu einem Fehler, wenn die Zeilen verwendet werdenIch denke, dieser Fehler kann aufgrund der aktuellen Datentabelle auftreten.Das folgende Skript führt zu einem Fehler, aber wenn Sie die Zeile „Current Data Table (dt)“ auskommentieren, funktioniert es wie erwartet.Ich bin mir nicht sicher, warum das so funktioniert – wir werden es weiter untersuchen, um zu sehen, ob Änderungen möglich sind, um die Notwendigkeit zu vermeiden, die Current Data Table() zu ändern.
dt=Open("$SAMPLE_DATA/Big Class.jmp");
dt<<SELECT where=""></SELECT>Betreff: „Ausgewählte Zeilen abrufen“ führt zu einem Fehler, wenn die Zeilen verwendet werdenDeine Vermutung ist einigermaßen richtig. „dt“ ist eigentlich die Originaldatentabelle. Von dort leite ich andere Tabellen ab und identifiziere dann die Elemente, die ich auswählen möchte.
Nachdem ich die Elemente gefunden habe, kehre ich zu „dt“ zurück und führe „<< Get Rows Where (items i want to get)“ aus, um die Zeilennummern abzurufen. Dann setze ich gerne „dt:colum[rows i got] = ...“.
Es tut mir leid, dass ich es weder besser erklären noch die Daten bereitstellen kann.
Betreff: „Ausgewählte Zeilen abrufen“ führt zu einem Fehler, wenn die Zeilen verwendet werdenIst Ihre 'dt'-Tabelle von einer anderen Tabelle abgeleitet?Ich denke, dass es sich möglicherweise um den Versuch handelt, eine Zeilennummer von einer Tabelle einer anderen zuzuordnen, aber das lässt sich nur schwer mit Sicherheit sagen, wenn man nicht mehr über die Daten weiß.
Betreff: „Ausgewählte Zeilen abrufen“ führt zu einem Fehler, wenn die Zeilen verwendet werdenDanke für die schnelle Antwort!
Die Spalte ist korrekt definiert und ich habe mittlerweile viele Varianten ausprobiert. Die Matrix in eine Liste umwandeln und iterieren usw. --> funktioniert nicht.
Ich weiß, dass es gut funktionieren sollte. Ich verwende tatsächlich „<< Get Rows Where“ im selben Skript und es funktioniert.
Allerdings bin ich jetzt auf die gute alte For Each Row-Schleife umgestiegen, um den Trick zu machen, hier kein Problem.
Betreff: „Ausgewählte Zeilen abrufen“ führt zu einem Fehler, wenn die Zeilen verwendet werdenHier ist Ihr Skript, das mit einigen Beispieldaten ausgeführt wird, die bei der Ausführung von JMP 12 oder JMP 14 kein Problem darstellen.Was ich anhand Ihrer Daten überprüfen würde, ist, dass die Spalte „bar“ als Zeichenspalte definiert ist.
names default to here(1);
dt=New Table( "Example",
Add Rows( 3 ),
New Column( "foo", Character, "Nominal", Set Values( {"a", "", "a"} ) ),
New Column( "bar", Character, "Nominal", Set Values( {"", "", ""} ) )
);
list = {"a","b"};
For( i = 1, i <= N Items(list), i++,
item = list[i];
rows = dt << Get Rows Where(
dt:foo == item
);
Column(dt, "bar" )[rows] = "foobar";
);