www.cresco.co.jp
見かけて、ふむふむと頷いていたのですが。
SASの欠損値の要諦
missing valueと英語表記されますが、RDBのNULLとは違う挙動をします。
- NULLは型としてNULL型があるが、SASの場合には文字列型・数値型などの型を持ちます。
数値欠損値を文字に暗黙のキャストを行うと、「.」が文字として出てきます。
これが結構タチが悪いので、共通のマクロなんかではちゃんと出てこないように制御した方がいいです。
SASの論理演算の要諦
SASの論理演算は、数値の結果を返します。
FALSE→ 0
TRUE → 1
また、RDBの論理演算と異なり、NULLは扱わないです。
なお、数値を論理にキャストする場合には、
0または欠損値→FALSE
上記以外→TRUE
です。
余談
他言語のNULLと違う!という話とかはよく聞くしまあそういう説明もするのですが、実の所、他言語でも別に統一されている訳ではないのでなんとも言い難いのがNULLです。