Test logico per controllare un intervallo e restituire True o FalseCIAO,
Sto cercando di verificare se un valore in una cella all'interno di una variabile si trova all'interno di un intervallo di valori, compreso tra 0,50 e 2,0, e se rientra in tale intervallo per restituire vero e se non restituisce falso. sono nella tabella dei dati e nelle informazioni sulla colonna e digito quanto segue nella formula di modifica:
If (0.50 < ( :Name( "P1-R1-D1-L1" ) > 2.0), "True", "False") <BR /><BR />// and
<BR />If (0.50 < ( :Name( "P1-R1-D1-L1" ))|(2.0 > ( :Name( "P1-R1-D1-L1" ), "True", "False"))
ma nessuno dei due funziona per me, cosa sto facendo di sbagliato, qualsiasi aiuto sarebbe molto apprezzato
Grazie
Oggetto: test logico per verificare un intervallo e restituire vero o falsoancora una volta grazie txnelson, grazie per tutto il tuo aiuto, molto apprezzatoOggetto: test logico per verificare un intervallo e restituire vero o falsoGrazie Jeff, ottima spiegazione
Oggetto: test logico per verificare un intervallo e restituire vero o falso@txnelson ti ha dato un esempio funzionante ma posso spiegare cosa hai sbagliato nei tuoi tentativi.
If (0.50 < ( :Name( "P1-R1-D1-L1" ) > 2.0), "True", "False")
In questo su stai provando un confronto complesso che JMP non supporta, vale a dire a < b > c, cioè a meno di B più grande di C.
Guardando nell'Editor di formule puoi vedere i confronti complessi che JMP offre, e quello @txnelson usato:

Notare il testo della guida che fornisce un indizio sul fatto che JMP è un linguaggio funzionale e che questi operatori complessi sono in realtà una scorciatoia per il funzioni Less LessEqual() e LessEqual Less() . JMP non ha una funzione per il confronto che volevi fare.
Per il secondo tentativo:
If (0.50 < ( :Name( "P1-R1-D1-L1" ))|(2.0 > ( :Name( "P1-R1-D1-L1" ), "True", "False"))
Hai più parentesi del necessario e sono nei posti sbagliati. Ecco una versione corretta:
If( 0.50 < :Name( "P1-R1-D1-L1" ) | 2.0 > :Name( "P1-R1-D1-L1" ),
"True",
"False"
)
Tuttavia, consideriamo ciò che stai chiedendo in questo confronto logico. Stai chiedendo a JMP di controllare se la tua colonna è più grande di .5 O 2.0 è più grande di la tua rubrica Questo sarà vero per tutti i valori della tua colonna. Se la tua colonna è inferiore a 0,5, allora 2,0 sarà maggiore della tua colonna. Se la tua colonna è maggiore di 2.0 allora .5 sarà inferiore alla tua colonna.
Quindi, probabilmente vuoi la versione che @txnelson fornito, verificando se la colonna è compresa nell'intervallo da 0,5 a 2,0 utilizzando il costrutto a < b <= c.
Oggetto: test logico per verificare un intervallo e restituire vero o falsoEcco un pezzo di JSL che crea una colonna sotto le specifiche che hai fornito
Names Default To Here( 1 );
dt = New Table( "Example",
add rows( 20 ),
New Column( "P1-R1-D1-L1", formula( Random Uniform( 0, 4 ) ) )
);
dt << New Column( "TorF",
character,
formula( If( 0.50 <= :Name( "P1-R1-D1-L1" ) <= 2.0, "True", "False" ) )
);