Gibt Missing( " " ) True zurück?Ich möchte eine Raumzelle und eine leere Zelle unterscheiden.Der Wird vermisst() Die Funktion interpretiert beides als fehlend.Gibt es einen besseren Weg?
Ich verwende JMP 16.2.0.
New Table( "Example",
Add Rows( 1 ),
New Column( "Empty", Character, "Nominal", Set Values( {""} ) ),
New Column( "Empty Missing?",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Is Missing( :Empty ) )
),
New Column( "Space", Character, "Nominal", Set Values( {" "} ) ),
New Column( "Space Missing?",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Is Missing( :Space ) )
)
)Verbraucher- und MarktforschungDatenmischung und -bereinigungQualitäts- und VerfahrenstechnikBetreff: Gibt Missing( " " ) True zurück?Danke @vince_faller Und @txnelson .Das ist nicht die Antwort, auf die ich gehofft habe, aber sie erklärt das Verhalten.
Betreff: Gibt Missing( " " ) True zurück?Hinzufügen zu @vince_faller , JMP konvertiert „ “ bei der Eingabe in eine Datentabelle zwar in „“, jedoch nicht „a“ in „a“.Das heißt, wenn in der angegebenen Zelle gültige Zeichen vorhanden sind, behält JMP die führenden Leerzeichen („20“ hexadezimal) bei.JMP verfügt außerdem über Escape-Zeichenfolgen zur Eingabe von Leerzeichen ( \!b )( „08“ hex ) und Nullen ( \!0 )( „“ hex ).
Betreff: Gibt Missing( " " ) True zurück?Ein Leerzeichen ist nur „“ und es scheint, als würde JMP die Eingaben von Leerzeichen so kürzen, dass sie wieder einfach leer sind.
Names default to here(1);
dt = New Table( "Example",
New Column( "Fun", Character, Set Values( {" ", "", "A"} ) ),
New Column("State", character, Formula(
Match(:Fun,
"", "Blank",
" ", "Space"
, // else
"Filled"
)
))
);
dt:Fun << Get Values(); // {"", "", "A"}
Zumindest in 16.2
Ich weiß, dass Sie in früheren Versionen nicht einmal ismissing() für Nicht-Zahlen ausführen konnten.
Betreff: Gibt Missing( " " ) True zurück?Dem Gesagten ist nicht viel hinzuzufügen. Vielleicht eine Frage:
„Es gibt also KEINE Weltraumzelle“ – keine Chance, eine zu erschaffen?
Interessant, auch über eine Formel wird das Leerzeichen in "" umgewandelt.
New Table( "Example",
Add Rows( 1 ),
New Column( "space and A", Character, "Nominal", Set Values( {" A"} ) ),
New Column( "Space", Character, "Nominal", Formula( Substr(:space and A,1,1) ) ),
New Column( "Space Missing?", Formula( Is Missing( :Space ) ))
);
Show("x"||Substr(:space and A[1],1,1) ||"x"); // sure, JSL doesn't lose the space
Show("x"||:space_v2 [1] ||"x") //automatically trimmed, even with a formula!
Unter dem Strich: Wenn es unmöglich ist, eine Raumzelle zu erschaffen, könnte man das Rätsel vielleicht so umgestalten, dass es eine Lösung gibt.
zB das Leerzeichen nicht nehmen und in der Zelle speichern - ein Zeichen hinzufügen - und dann prüfen, ob es nur ein Zeichen ist oder ein Zeichen mit einem Leerzeichen davor.
Betreff: Gibt Missing(" ") True zurück?Gibt es vielleicht eine Regel, dass nachfolgende Leerzeichen beim Speichern von Zeichenketten in einer Datentabelle automatisch entfernt werden?
weil sie schwer zu erkennen sind (viel schwerer als führende Leerzeichen).
Ein einfacher Abstand " " wird als nachfolgender Abstand behandelt - extrem schwer zu erkennen.
Ist diese Regel in der Dokumentation erwähnt? Ich konnte sie nicht finden ...
Interessanterweise gilt diese Regel sogar für Spaltenformeln: Nachfolgende Leerzeichen werden einfach entfernt.

dt = new table("test");
New Column( "input", Character, set values({"ABC","A B"}) );
New Column( "first 2 letters", Character, Formula( Substr( :input, 1, 2 ) ));
New Column( "length first_two_letters", Formula( Length( :first 2 letters ) ))