Est-ce que Missing( " " ) renvoie True ?Je voudrais différencier une cellule spatiale et une cellule vide.Le Est manquant() fonction interprète les deux comme manquants.Existe-t-il un meilleur moyen?
J'utilise 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 ) )
)
)AutreRe : Est-ce que Missing( " " ) renvoie True ?Merci @vince_faller et @txnelson .Ce n'est pas la réponse que j'espérais, mais cela explique le comportement.
Re : Est-ce que Missing( " " ) renvoie True ?Ajouter à @vince_faller , JMP convertit " " en "" lors de la saisie dans une table de données, cependant, il ne convertit pas " a " en " a ".Autrement dit, lorsque des caractères valides existent dans la cellule donnée, JMP conserve les espaces de début ("20" hexadécimal).JMP dispose également de chaînes d'échappement pour saisir des blancs ( \!b )( "08" hex ) et des valeurs nulles ( \!0 )( "" hex ).
Re : Est-ce que Missing( " " ) renvoie True ?Un blanc est juste "" et il semble que JMP coupe les entrées d'espaces pour qu'elles soient à nouveau vides.
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"}
Au moins en 16.2
Je sais que dans les versions antérieures, vous ne pouviez même pas faire ismissing() sur des non-nombres.
Re : Missing( " " ) renvoie-t-il True ?Peu de choses à ajouter à ce qui a été dit. Peut-être une question :
« Donc, il n’y a PAS de cellule spatiale » – aucune chance d’en créer une ?
Intéressant, même via une formule, l'espace est converti en "".
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!
Sous la ligne, s'il est impossible de créer une cellule spatiale, peut-être pourrait-on reformuler l'énigme de manière à ce qu'il y ait une solution.
par exemple, ne prenez pas l'espace et enregistrez-le dans la cellule - ajoutez un caractère - puis vérifiez s'il s'agit simplement d'un caractère ou d'un caractère avec un espace devant.
Re: Est-ce que Missing( " " ) renvoie True ?J'imagine qu'il existe une règle selon laquelle les espaces de fin sont automatiquement supprimés des chaînes de caractères lors de leur enregistrement dans une table de données ?
parce qu'ils sont difficiles à détecter (beaucoup plus difficiles que pour les espaces de tête).
Un simple espace « » est traité comme un espace de traînée - extrêmement difficile à voir.
Cette règle est-elle mentionnée dans la documentation ? Je ne l'ai pas trouvée…
Il est intéressant de noter que cette règle s'applique même aux formules de colonnes : les espaces de fin sont simplement supprimés.

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 ) ))