Wählen Sie Where() aus, das nicht funktioniert<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe viel Zeit damit verbracht, in JMP eine einfache „Select Where()“-Anweisung zu erstellen, aber es hat nicht funktioniert.
Hier ist die Codezeile, die ich verwenden wollte:
| dtData << select where(yParamList <= minLimList ); |
yParamList ist eine gültige Spalte
minLimList ist eine gültige Zahl
Nachdem ich einige dieser Foren gelesen hatte, fand ich jemanden, der vorschlug, alles in einen String zu packen und es dann zu analysieren, also habe ich den obigen Code wie folgt geändert:
| select_string = "dt << select where(" || ":" || yParamNames || " < " || char(minLimList ) || ");"; |
| eval(parse(select_string)); |
yParamNames ist nur eine Namensversion der yParamList aus dem Originalcode.
Meine Frage ist: Warum funktioniert mein ursprünglicher Code nicht?
Hier ist der Link, wo die Verwendung der Zeichenfolge vorgeschlagen wurde, und eval(parse(string));
Danke
Betreff: Select Where() funktioniert nichtDanke. Das hat mich verrückt gemacht.Ich habe mir die Funktion „As Column()“ angesehen, habe mich aber nicht darum gekümmert, weil ich nicht glauben kann, dass JMP nicht intelligent genug ist, um zu wissen, dass es sich um eine Spalte handelt.Irgendwann hatte ich eine Spalte (dtData, yParamList ) Aussage dort auch.
Die Sache ist die: Nachdem ich Ihren Code dort eingefügt hatte, dauerte es etwa 15 Sekunden, bis das Skript meine Schleife von etwa 420 Spalten x 4000 Zeilen durchlaufen hatte. Ich fand das seltsam, weil es mit der String-/Parse-Methode, die ich als Workaround verwendet hatte, gerade in etwa 2 Sekunden gelaufen war. Scheint, als ob die String-/Parse-Methode tatsächlich viel effizienter ist ... siehe Abbildung.
Betreff: Select Where() funktioniert nichtVersuchen Sie, yParamList einzuschließen innerhalb von As Column().
Das funktioniert in JMP 10:
dtData = Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
yParamList = dtData << Spaltennamen abrufen ;
minLimList = { 12 , 14 } ;
ich = 2 ;
dtData << Wählen Sie wo aus ( als Spalte ( yParamList [ ich ]) <= minLimList [ ich ]) ;