Missing( " " ) は True を返しますか?空白のセルと空のセルを区別したいと思います。の不足している()関数は両方を欠損として解釈します。より良い方法はありますか?
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 ) )
)
)他のRe: Is Missing( " " ) は True を返しますか?ありがとう@vince_fallerと@txnelson .これは私が望んでいた答えではありませんが、動作を説明しています。
Re: Is Missing( " " ) は True を返しますか?に追加するには@vince_faller 、JMP はデータ テーブルへの入力時に " " を "" に変換しますが、" a" を "a" に変換しません。つまり、指定されたセルに有効な文字が存在する場合、JMP は先頭のスペース ("20" hex) を維持します。JMPには、空白( \!b )( "08" hex )およびヌル( \!0 )( "" hex )を入力するためのエスケープ文字列もあります。
Re: Is Missing( " " ) は True を返しますか?空白は単なる "" であり、JMP はスペースの入力をトリミングして再び空白にするようです。
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"}
少なくとも 16.2 では
以前のバージョンでは、非数値に対して ismissing() を実行することさえできませんでした。
Re: Missing( " " ) は True を返しますか?言われたことに付け加えることはほとんどありません。質問かもしれません:
「つまり、スペースセルは存在しない」 - スペースセルを作成する機会はないのですか?
興味深いことに、数式を介しても、スペースは "" に変換されます。
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!
行の下に、スペースセルを作成することが不可能である場合、解決策が存在するように謎を作り直すことができるかもしれません。
たとえば、スペースを取ってセルに保存するのではなく、文字を追加して、それが単なる文字なのか、前にスペースがある文字なのかを確認します。
Re: Missing( " " ) は True を返しますか?データテーブルに文字列を保存する際、末尾の空白は自動的に削除されるというルールがあるのでしょうか?
なぜなら、それらは検出が難しいからである(先頭のスペースよりもはるかに難しい)。
単純なスペース " は末尾のスペースとして扱われ、非常に見えにくくなります。
このルールはドキュメントに記載されていますか?見つけられませんでした…
興味深いことに、このルールは列数式にも適用されます。末尾の空白は単純に削除されます。

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