Istruzione JSL condizionale multipla if che confronta i valori in due colonneNella mia tabella di dati voglio confrontare i valori in due colonne diverse e inserire i risultati del confronto in una nuova colonna. Sono in grado di farlo funzionare utilizzando una formula ma non in grado di convertirlo in JSL. Ho bisogno della formula qui sotto come script JSL.
Se MHD < MTV * -6 => 0
Se MHD > MTV * 6 => 0
Altro => 1
Qui MHD e MTV sono due colonne di dati con valori continui numerici. Sto confrontando i valori in queste due colonne per ogni riga.
Ho provato lo script qui sotto ma non funziona.
Nuova colonna ("P/F", Numerico, "Nominale", Formula(If(:MHD < :MTV * -6, 0, :MHD > :MTV*6, 0, 1)))
Qualsiasi guida sarà molto apprezzata.
Ri: JSL condizionale multiplo se dichiarazione che confronta i valori in due colonneGrazie per l'ottimo suggerimento. Ora non devo cambiare le etichette delle mie colonne che utilizzano caratteri speciali.Ri: JSL condizionale multiplo se dichiarazione che confronta i valori in due colonneJSL interpreta & ecc. come un elemento computazionale, non come qualcosa che fa parte di un nome.Dai un'occhiata alla funzione :Name() che puoi posizionare attorno al nome di una colonna per assicurarti che JSL interpreti correttamente il nome della colonna.
Se la colonna MDH fosse denominata MDH/PQR, JSL interpreterebbe il nome come un calcolo matematico della divisione di una variabile chiamata MDH per una variabile chiamata PQR.Ma se lo fai riferimento come:
:Nome( "MDH/PQR" )
funzionerà tutto bene.
Nel tuo codice sembrerebbe
New Column ("P/F", Numeric, "Nominal", Formula(If(:MTV *(-6) < :Name("MDH/PQR") < :MTV * 6,1,0)))Ri: JSL condizionale multiplo se dichiarazione che confronta i valori in due colonneGrazie per la rapida risposta e le ottime idee per risolvere il problema. Il mio script funziona ora. Un'altra cosa che ho notato è che se una qualsiasi delle etichette di colonna avesse un '-' o '&', lo script non funzionerebbe. Una volta rimossi quei caratteri speciali, lo script ha funzionato senza problemi.Ri: JSL condizionale multiplo se dichiarazione che confronta i valori in due colonneGrazie. Anche questa soluzione ha funzionato perfettamente.Ri: JSL condizionale multiplo se dichiarazione che confronta i valori in due colonneFormula( If( :MDH < :MTV * -6 | :MDH > :MTV * 6, 0, 1 )
Forse?
Ri: JSL condizionale multiplo se dichiarazione che confronta i valori in due colonneC'è un piccolo problema con JSL nella gestione
:TV * -6
JSL può considerare -6 come una sottrazione, non come un numero negativo.Pertanto è più saggio riferirsi ad esso come
:TV * (-6)
per assicurarsi che JMP lo interpreti correttamente.
Di seguito sono riportati un paio di modi diversi per impostare la formula per ottenere i risultati desiderati.
New Column ("P/F", Numeric, "Nominal", Formula(If(:MTV *(-6) < :MDH < :MTV * 6,1,0)))
//or
New Column ("P/F", Numeric, "Nominal", Formula(If(:MTV *(-6) < :MDH | :MDH > :MTV * 6,0,1)))