¿Es Missing( " " ) devuelve Verdadero?Me gustaría diferenciar una celda espacial y una celda vacía.los Está perdido() la función interpreta ambos como perdidos.¿Hay una mejor manera?
Estoy usando 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 ) )
)
)OtroRe: ¿Missing( " " ) devuelve True?Un espacio en blanco es simplemente "" y parece que JMP recorta las entradas de los espacios para que vuelvan a estar en blanco.
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"}
Al menos en 16.2
Sé que en versiones anteriores ni siquiera podías hacer ismissing() en números que no eran.
Re: ¿Missing( " " ) devuelve True?Para añadir a @vince_faller , JMP convierte " " en "" al ingresar en una tabla de datos, sin embargo, no convierte "a" en "a".Es decir, cuando existen caracteres válidos en la celda dada, JMP mantiene los espacios iniciales ("20" hexadecimal).JMP también tiene cadenas de escape para ingresar espacios en blanco ( \!b )( "08" hex ) y nulos ( \!0 )( "" hex ).
Re: ¿Missing( " " ) devuelve True?Poco que añadir a lo dicho. Quizás una pregunta:
"Entonces, NO existe ninguna célula espacial" ¿No hay posibilidad de crear una?
Interesante, incluso a través de una fórmula, el espacio se convierte 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!
Debajo de la línea, si es imposible crear una celda espacial, tal vez uno podría reformular el enigma de tal manera que haya una solución.
por ejemplo, no tome el espacio y guárdelo en la celda: agregue un carácter y luego verifique si es solo un carácter o un carácter con un espacio al frente.
Re: ¿Missing( " " ) devuelve True?Supongo que existe una regla que establece que los espacios finales se eliminan automáticamente de las cadenas al guardarlas en una tabla de datos.
porque son difíciles de detectar (mucho más difíciles que los espacios iniciales).
Un espacio simple " " se trata como un espacio final, extremadamente difícil de ver.
¿Se menciona esta regla en la documentación? No la encontré...
Curiosamente, esta regla se aplica incluso a las fórmulas de columna: simplemente se eliminan los espacios finales.

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