Seleziona Where() non funziona<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho trascorso molto tempo cercando di creare una semplice istruzione "Seleziona dove ()" in JMP e non funzionava.
Ecco la riga di codice che stavo cercando di utilizzare:
| dtData << seleziona dove(yParamList <= minLimList ); |
yParamList è una colonna valida
minLimList è un numero valido
Dopo aver letto alcuni di questi forum, ho trovato qualcuno che suggeriva di mettere tutto in una stringa e poi analizzarlo, quindi ho cambiato il codice sopra in questo:
| select_string = "dt << select where(" || ":" || yParamNames || " < " || char(minLimList ) || ");"; |
| eval(analizzare(select_string)); |
yParamNames è solo una versione del nome di yParamList dal codice originale.
La mia domanda è: perché il mio codice originale non funziona?
Ecco il link dove è stato suggerito di usare la stringa, e eval(parse(string));
Grazie
Ri: Select Where() non funzionaGrazie. Questo mi stava facendo impazzire.Ho esaminato la funzione As Column () ma non mi sono preoccupato perché non riesco a credere che JMP non sia abbastanza intelligente da sapere che è una colonna.Ad un certo punto ho avuto una colonna (dtData, yParamList ) dichiarazione anche lì.
Il fatto è che, dopo aver inserito il tuo codice lì, ci sono voluti circa 15 secondi perché lo script eseguisse il mio ciclo di circa 420 colonne x 4000 righe. Ho pensato che fosse strano perché era appena stato eseguito in circa 2 secondi con il metodo string/parse che avevo usato come soluzione. Sembra che il metodo string/parse sia in realtà molto più efficiente ... vai a capire.
Ri: Select Where() non funzionaProva a racchiudere yParamList all'interno di As Column().
Questo funziona in JMP 10:
dtData = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
yParamList = dtData << ottenere i nomi delle colonne ;
minLimList = { 12 , 14 } ;
io = 2 ;
dtData << seleziona dove ( come colonna ( yParamList [ io ]) <= minLimList [ io ]) ;