infileのdsdオプション
infileステートメントのdsd(Delimiter-Sensitive Data)オプションの使いどころについてまとめた。
1. 欠損値があるデータの読み込み
data temp; infile cards dlm=','; input a b c d; cards; 1,,3,4 ; run;
デフォルトオプションでは区切り文字が連続している部分は無視される。
そのため、上のコードでは変数に対してデータ数が足りず、オブザーベーションは作成されない。
data temp; infile cards dlm=',' dsd; input a b c d; cards; 1,,3,4 ; run;
dsdオプションを付けると区切り文字が連続している場合、欠損値があるとみなすため
OBS | a | b | c | d |
---|---|---|---|---|
1 | 1 | . | 3 | 4 |
と意図した通りにデータを読み込める。