Come fare riferimento a una colonna con un nome complesso in un'espressioneScripter JSL per principianti qui...
Voglio creare uno script che eliminerà tutte le righe con dati mancanti all'interno di qualsiasi colonna.In questo momento, se rinomino le colonne, funzionerà in questo modo:
clean_dt << selectWhere(Manca ( : THK ) ) << deleteRows ;
Il problema è che voglio che questo script sia dinamico e sia in grado di gestire qualsiasi nome per qualsiasi colonna che gli do e fare riferimento ad esso per numero di colonna, ad esempio. Diciamo che il nome della colonna è complesso come questo
Passo::Misura::Dati::THK:Grezzo (medio)
Non voglio dover rinominare le mie colonne ogni volta... Ho provato diverse iterazioni di cose che penso "dovrebbero" funzionare, ma a loro non piace
clean_dt << selectWhere(Manca( Colonna(8) )) << deleteRows ;
O
clean_dt << selectWhere(IsMissing(: Passo::Dati ::THK:Grezzo (Medio) )) << deleteRows ; (il nome della colonna è troppo complesso con caratteri speciali)
Ogni volta che si sbaglia con questo messaggio
l'argomento deve essere numerico{1} nell'accesso o nella valutazione di 'Is Missing' , Is Missing/*####*/(Column( 8 ))
Ri: Come fare riferimento a una colonna con un nome complesso in un'espressioneGrazie, ha funzionato! Da qui dovrebbe essere facile passare l'espressione in un ciclo usando i come indice di colonnaRi: Come fare riferimento a una colonna con un nome complesso in un'espressioneQuando si utilizza il messaggio Seleziona dove, i criteri devono essere basati sulla riga corrente poiché JMP esaminerà ogni riga per vedere se la riga soddisfa i criteri.
Poiché la funzione Colonna restituisce effettivamente un riferimento all'intera colonna, quando si utilizza la funzione Colonna nel messaggio Seleziona dove, è necessario includere un pedice alla riga corrente. Questo può essere fatto sottoscrivendo [Row()] o solo [] in breve. Vedi sotto.
dt << Select where( Is Missing( Column( 8 )[] ) );
Quando si desidera utilizzare un nome di colonna con caratteri speciali, è possibile utilizzare l'analizzatore di nomi con una stringa del nome della colonna. Se questa stringa deve essere una variabile, è necessario utilizzare invece la funzione Colonna.
dt << Select Where( Is Missing( :Name( "Step::Data::THK:Raw (Mean)" ) ) );
O
str = "Step::Data::THK:Raw (Mean)";
dt << Select Where( Is Missing( Column( str )[] ) );