Manca( " " ) restituisce Vero?Vorrei differenziare una cella spaziale e una cella vuota.Il Manca() la funzione interpreta entrambi come mancanti.C'è un modo migliore?
Sto 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 ) )
)
)AltroRe: Manca( " " ) restituisce Vero?Grazie @vince_faller e @txnelson .Questa non è la risposta che speravo, ma spiega il comportamento.
Re: Manca( " " ) restituisce Vero?Per aggiungere a @vince_faller , JMP converte " " in "" durante l'immissione in una tabella di dati, tuttavia, non converte " a" in "a".Cioè, quando esistono caratteri validi nella cella data, JMP mantiene gli spazi iniziali ( "20" esadecimale).JMP ha anche stringhe di escape per inserire blanks( \!b )( "08" hex ) e nulls( \!0 )( "" hex ).
Re: Manca( " " ) restituisce Vero?Uno spazio vuoto è solo "" e sembra che JMP riduca gli input degli spazi per essere nuovamente vuoti.
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"}
Almeno in 16.2
So che nelle versioni precedenti non potevi nemmeno eseguire ismissing() su non numeri.
Re: Missing( " " ) restituisce True?Poco da aggiungere a quanto detto. Forse una domanda:
"Quindi non esiste NESSUNA cellula spaziale" - nessuna possibilità di crearne una?
Interessante, anche tramite una formula, lo spazio viene convertito in "".
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!
Sotto la frase, se è impossibile creare una cellula spaziale, forse si potrebbe riformulare l'enigma in modo che ci sia una soluzione.
Ad esempio, non prendere lo spazio e salvarlo nella cella: aggiungi un carattere e poi controlla se è solo un carattere o un carattere con uno spazio davanti.
Oggetto: Re: Missing( " " ) restituisce True?Immagino ci sia una regola per cui gli spazi finali vengono rimossi automaticamente dalle stringhe quando vengono salvate in una tabella di dati?
perché sono difficili da individuare (molto più difficili che per gli spazi principali).
Uno spazio semplice " " viene trattato come spazio di scia, estremamente difficile da vedere.
Questa regola è menzionata nella documentazione? Non l'ho trovata...
È interessante notare che questa regola si applica anche alle formule di colonna: gli spazi finali vengono semplicemente rimossi.

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