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 ) )
)
)消費者與市場研究資料混合與清理品質和工藝工程回覆: Missing( " " ) 回傳 True 嗎?謝謝@vince_faller和@tx尼爾森。這不是我希望的答案,但它確實解釋了這種行為。
回覆: Missing( " " ) 回傳 True 嗎?要添加到@vince_faller ,JMP 在輸入資料表時確實將“ ”轉換為“”,但不會將“a”轉換為“a”。也就是說,當給定單元格中確實存在有效字元時,JMP 會保留前導空格(「20」十六進位)。JMP 也有用於輸入空白 ( \!b )( "08" hex ) 和空值 ( \!0 )( "" hex ) 的轉義字串。
回覆: 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() 。
回覆: 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!
在底線之下,如果不可能創建一個空間單元,也許我們可以重塑這個謎題,從而找到解決方案。
例如,不要佔用空格並將其保存在單元格中 - 添加一個字元 - 然後檢查它是否只是一個字元或前面有空格的字元。
回覆: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 ) ))