Holen Sie sich Zeilen, in denen eine leere Matrix zurückgegeben wird<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe eine Datentabelle, die ich manipulieren möchte. Ich verwende die Funktion „Zeilen abrufen, wo“, um herauszufinden, wo die erste Spalte einer Zeichenfolge entspricht. Nennen wir sie „aaa“. Wenn ich dazu die Software verwende, funktioniert es einwandfrei und es werden zwei Zeilen ausgewählt, Zeile 1 und Zeile 2240. Wenn ich versuche, dies zu skripten, ist das Ergebnis eine leere Matrix.
Hier ist das Skript, das ich verwende:
Names Default To Here( 1 );
dtx = Current Data Table();
noRows = N Rows( dtx );
ddd = dtx << Get Rows Where( Column( dtx, 1 ) == "aaa" );
und das Ergebnis ist
[](0, 1)
Beachten Sie, dass dies eine 1 zurückgibt
Column( dtx, 1 ) [1] == "aaa"
Hat jemand eine Idee, was ich falsch mache?
Dank im Voraus
Heidekraut
Betreff: Zeilen abrufen, in denen eine leere Matrix zurückgegeben wirdCool. Ich habe die ursprüngliche Frage nicht genau genug gelesen und das leere [] sowieso vergessen.
Betreff: Zeilen abrufen, in denen eine leere Matrix zurückgegeben wird
dtx=open("$sample_data/big class.jmp");
c=column(dtx,3);
dtx<
Das hat funktioniert, vielen Dank euch beiden.
H
Betreff: Zeilen abrufen, in denen eine leere Matrix zurückgegeben wirdEin Vergleich von a Spaltenobjekt mit einem Zeichenfolge wird immer false zurückgeben. In bestimmten Fällen (oder allgemein?) muss JMP ausdrücklich mitgeteilt werden, dass Sie sich auf eine Spalte oder auf die Spaltenwerte beziehen (ich erinnere mich, dass es einen guten Thread zu diesem vielleicht etwas verwirrenden Unterschied gab, aber ich kann ihn jetzt nicht finden. ..)
Sie können mit Indizes auf Daten zugreifen (wie Sie oben mit Column( dtx, 1 ) [1] == "aaa" gezeigt haben). In Funktionen wie G et Zeilen Where() die grundsätzlich alle Spaltenwerte durchlaufen, kann auf jeden Wert mit einer der folgenden Methoden zugegriffen werden:
1) Spalte ( dtx , 1 )[] == „aaa“ // Beachten Sie die leeren Klammern
2) Als Spalte ( dtx , 1 ) == „aaa“
3) Oder am einfachsten mit skalierendem Doppelpunkt, wie C. Hales oben gezeigt hat
Betreff: Zeilen abrufen, in denen eine leere Matrix zurückgegeben wirdIch sehe so aus, als ob Get Rows Where ein einfacheres Argument wünscht. Probieren Sie eines davon aus
dtx=open("$sample_data/big class.jmp");
c=column(dtx,3);
dtx<
oder
dtx=open("$sample_data/big class.jmp");
dtx<
der seltsam aussehende Rückgabewert, [](0, 1) ist das leere Array von JMP mit 0 Zeilen und 1 Spalte.Die beiden Beispiele geben mehr Zeilen einer Spalte zurück:
[1, 2, 3, 4, 5, 9, 10, 11, 16, 17, 18, 19, 20, 28, 29, 35, 36, 38]