簡単な質問があります。
私はSASを学んでいて、dsd=
オプション。
これが何を意味するのか誰か知っていますか?それは思い出す/文脈化するのを助けるかもしれません。
ありがとう。
インターネットからテキストをコピーして貼り付けるだけではありません。もう少しわかりやすく説明しようと思います。区切り文字DLM=
と同様に、DSD
はinfile
ステートメントで使用できるオプションです。
区切り文字がDLM=
で指定されており、DSD
を使用したとします。 SASが並んでいる、または間に空白があるspace(s)だけの2つの区切り文字がある場合、これは欠損値として認識されます。
たとえば、テキストファイルdog.txtに行が含まれている場合:
171,255,,dog
そして、
data test;
infile 'C:\sasdata\dog.txt' DLM=',' DSD;
input A B C D $;
run;
出力されます:
A B C D
171 255 . dog
したがって、変数C
は、.
で示されるように欠落します。 DSD
を使用しなかった場合、無効なデータとして返されます。
[〜#〜] dsd [〜#〜](デリミタ依存データ)
データ値が引用符で囲まれている場合、値内の区切り文字が文字データとして扱われることを指定します。 DSDオプションは、LIST入力を使用するときにSASが区切り文字を処理する方法を変更し、デフォルトの区切り文字をコンマに設定します。DSDを指定すると、SASは2つの連続する区切り文字を処理します欠損値として、文字値から引用符を削除します。
http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000146932.htm
DSDはデリミタ依存データの略です。
InfileステートメントのDSD(区切り文字依存データ)は、3つのことを行います。 1:引用符で囲まれたデータ値の区切り文字を無視します。 2:データの一部として引用符を無視します。 3:連続する2つの区切り文字を欠損値として扱います。
出典: easy sas
DSDとは、データが欠落している場合に区切り文字が連続する区切りデータファイルを指します。以前は、区切られたファイルを作成するプログラムは、欠落したデータに対して常に空白を入れていました。ただし、今日では、PCソフトウェアは空白を入れません。つまり、区切り文字は区切られません。 INFILEステートメントのDSDオプションは、SASこれを監視するように指示します。以下に、(カンマ区切りの値を使用した)例を示します。
Old Way: 5,4, ,2, ,1 ===> INFILE 'file' DLM=',' ... etc
New Way: 5,4,,2,,1 ===> INFILE 'file' DLM=',' DSD ... etc.