Hallo,
Ich versuche zu überprüfen, ob ein Wert in einer Zelle innerhalb einer Variablen innerhalb eines Wertebereichs zwischen 0,50 und 2,0 liegt und ob er in diesen Bereich fällt, um „true“ zurückzugeben, und wenn er nicht „false“ zurückgibt. Ich bin in der Datentabelle und den Spalteninformationen und gebe Folgendes in die Bearbeitungsformel ein:
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"))
aber bei mir funktioniert es auch nicht, was mache ich falsch, jede Hilfe wäre sehr dankbar
Danke
Danke Jeff, tolle Erklärung
@txnelson Ich habe Ihnen ein funktionierendes Beispiel gegeben, aber ich kann erklären, was Sie bei Ihren Versuchen falsch gemacht haben.
If (0.50 < ( :Name( "P1-R1-D1-L1" ) > 2.0), "True", "False")
Hier versuchen Sie einen komplexen Vergleich, den JMP nicht unterstützt, nämlich a < b > c, also a weniger als B größer als C.
Wenn Sie im Formeleditor nachsehen, können Sie die komplexen Vergleiche sehen, die JMP anbietet @txnelson gebraucht:

Beachten Sie den Hilfetext, der einen Hinweis darauf gibt, dass JMP eine funktionale Sprache ist und dass diese komplexen Operatoren eigentlich Abkürzungen für sind Funktionen Less LessEqual() und LessEqual Less() . JMP verfügt über keine Funktion für den Vergleich, den Sie durchführen wollten.
Für den zweiten Versuch:
If (0.50 < ( :Name( "P1-R1-D1-L1" ))|(2.0 > ( :Name( "P1-R1-D1-L1" ), "True", "False"))
Sie haben mehr Klammern als nötig, und diese befinden sich an den falschen Stellen. Hier ist eine korrigierte Version:
If( 0.50 < :Name( "P1-R1-D1-L1" ) | 2.0 > :Name( "P1-R1-D1-L1" ),
"True",
"False"
)
Lassen Sie uns jedoch überlegen, was Sie in diesem logischen Vergleich erwarten. Sie bitten JMP, zu überprüfen, ob Ihre Spalte vorhanden ist größer als .5 oder 2.0 ist größer als Deine Kolumne. Dies gilt für alle Werte Ihrer Spalte. Wenn Ihre Spalte kleiner als 0,5 ist, ist 2,0 größer als Ihre Spalte. Wenn Ihre Spalte größer als 2,0 ist, ist .5 kleiner als Ihre Spalte.
Sie möchten also wahrscheinlich diese Version @txnelson Überprüfen Sie mithilfe des Konstrukts a < b <= c, ob Ihre Spalte im Bereich von 0,5 bis 2,0 liegt.
Hier ist ein Teil von JSL, der eine Spalte gemäß den von Ihnen angegebenen Spezifikationen erstellt
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" ) )
);