最初の行にヘッダー情報がある入力ファイルがあります。(タブ区切りのデータ値)。これらの値の中には、ファイルの残りの部分を解析する方法を指定する整数値があります。この値がしきい値よりも小さい場合は、ファイルを 1 つの方法で解析する必要があります。値がしきい値よりも大きい場合は、別の方法でデータを解析する必要があります。
%let isNew = Undefined;
data header;
infile "&infile" OBS=1;
INPUT Agency $ Status $ Num $ fdate sdate;
if fdate < 20130428 then
%let isNew = false;
else
%let isNew = true;
run;
data factors;
infile "&infile" missover FIRSTOBS=2 LRECL=1000;
if isNew = false then
input
@1 poolno $6.
@7 factor 9.8 @;
else
input
@3 poolno $6.
@9 factor 9.8 @;
(some more input parsing code)
上記のコードでは、変数 isNew を定義し、条件チェックに応じてその変数を true/false に設定しています。後続のデータ ブロックでは、この変数の値を使用して、ファイルを解析する方法を決定しています。
サンプルの入力ファイルは次のとおりです (調べる値は太字で示されています)。
FHLMC アップデート #1 20130130 20130306
138788024201321000
140379000000000000
私は SAS を初めて使用します。何か提案はありますか?