基本的に、入力形式を使用して乱雑なデータを SAS に読み込もうとしていますが、問題があります。生のtxtファイルに次の形式のデータの列があります。
RegDate
0
0
16/10/2002
20/11/2003
0
RegDate の場合、0 = 欠落、それ以外の場合、日付は存在します。このデータを SAS に読み込み、ゼロに「NA」、日付に日付を指定して、データセットに出力したいと思います。
すべての日付が存在する場合、コードを使用できます
data test;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile "&pathlocation" delimiter='09'x
MISSOVER DSD firstobs=2 ;
informat RegDate ddmmyy10. ;
format RegDate ddmmyy10. ;
input
RegDate;
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */
run;
ただし、入力形式が日付を読み取るように設定されているため、ゼロが考慮されていないため、これを行っている上記のテキスト ファイルを読み取ることができません。
proc import ステートメントを使用する場合
proc import datafile="&pathlocation" out=test dbms=tab replace;
run;
best32 を使用しようとします。最初の行にゼロがあるためです。日付を読み込むことはできません。
そのため、何らかのカスタム フォーマットを作成する必要があります。これは、数値入力形式のみ、文字入力形式のみ、または画像入力形式 (日付に必要ですか?) に対して実行できます。1 つの変数に対して複数の形式を組み合わせる方法がわかりません。解決策は非常に簡単だと思いますが、オンラインで見つけることができないため、これが明らかな場合はお詫び申し上げます。a) IF-THEN ステートメントをフォーマットに入れ、入力に応じて異なる処理を行う方法はありますか? b) フォーマットを使用する必要があるように、純粋にテキストとしてデータを読み取ります。