JSL: Da die Boolean()-Funktion mehr Potenzial hatDas Problem, das dazu führt, ergibt sich aus einer Tabelle, die ich in JMP importiert habe. JMP importiert eine Spalte mit TRUE/FALSE als Zeichentyp. Ich möchte dies mit anderen logischen/booleschen Berechnungen kombinieren, also zum Beispiel:
:TRUEFALSEcolumn & :NumericValue>100
Allerdings sind die booleschen Operatoren so konzipiert, dass sie nur mit numerischen Daten funktionieren (ich verstehe warum). Ich habe nach einem JSL-Äquivalent zur as.logical()-Funktion von R gesucht und bin auf As Boolean() von JSL gestoßen.
Nach der Interaktion mit dem technischen Support (siehe Track, auf den die Tracking-Nummer hier verweist) verstehe ich, dass Boolean() erstellt wurde, um die Fähigkeit von JMP zur Verarbeitung von JSON-Dateien zu unterstützen. Ich glaube, dass es hier mehr Potenzial gibt und würde gerne sehen, dass die Ausgabe von As Boolean() in den booleschen Operatoren And(), Or() und Not() unterstützt wird.
Ja, eine gültige Problemumgehung ist eine Match()-Anweisung, um das Zeichen „FALSE“ in eine numerische 0 und das Zeichen „TRUE“ in eine numerische 1 umzuwandeln. Es ist einfach nicht so prägnant und leicht zu lesen wie As Boolean(:TRUEFALSEcolumn) und stellt eine Nuance in der JSL-Sprache dar, die für Statistiker, die Probleme mit den Kenntnissen der größeren Statistik-Programmiersprachen haben, nicht einfach zu verstehen ist. Das Hinzufügen dieser Funktion wäre praktisch. Zugegebenermaßen keine hohe Priorität.
SkripterstellungBetreff: JSL: Da die Boolean()-Funktion mehr Potenzial hat – Status geändert in: BestätigtBetreff: JSL: Da die Boolean()-Funktion mehr Potenzial hatEinige von uns haben sich kürzlich mit diesem Problem befasst. Das Problem besteht immer noch, wie Sie hier berichtet haben, aber ich wollte eine Problemumgehung mit Ihnen teilen, die immer noch einfacher ist als eine Match()-Anweisung.
as boolean("TRUE")>0 & 100>99; //AND
as boolean("False")>0 & 100>99; //OR
//example table
New Table( "example AsBoolean",
Add Rows( 4 ),
New Column( "TrueFalseCol", Character, "Nominal",
Set Values( {"True", "False", "True", "False"} )
),
New Column( "value", Numeric, "Continuous",
Set Values( [100, 100, 50, 50] )
),
New Column( "product", Numeric, "Continuous",
Formula( As Boolean( :TrueFalseCol ) * :value )
),
New Column( "AND", Numeric, "Continuous",
Formula( and(As Boolean( :TrueFalseCol )>0, :value) )
),
New Column( "OR", Numeric, "Continuous",
Formula( or(As Boolean( :TrueFalseCol )>0, :value) )
),
New Column( "NOT", Numeric, "Continuous",
Formula( Not(As Boolean( :TrueFalseCol )>0) )
)
);
Betreff: JSL: Da die Boolean()-Funktion mehr Potenzial hatFaszinierend. Ich verstehe es, finde es aber nicht wirklich intuitiv. Es gibt also noch Raum für Verbesserungen, aber das hilft zumindest.