0

暦年やその他の変数で分割された一連のファイルを調べています。私がやりたかったのは、それらを会計年度ごとに (レコードに存在する日付変数に基づいて) 分割することです。たとえば、FY2010 ファイルを作成するには、CY2009 および CY2010 ファイル (これらのファイルを file_2009 および file_2010 と呼びます) をスタックし、FY2010 レコードにサブセット化する必要があります。ただし、どちらかまたは両方のファイルが存在しない可能性があります。私がやりたかったのは、ファイルの1つが存在しない場合は、もう1つを使用することです。両方が終了する場合は、両方を使用します。それ以外の場合は、何もしません。私が思いついた方法は、私が望むほどコンパクトではありませんでした。これを行う最善の方法に関するアイデアはありますか? ありがとう。

4

1 に答える 1

1

分割ロジックはお任せします - 他の人がコメントしているように、グループごとの処理を介して同じ結果を達成する方がほとんどの場合簡単であるため、これはSASではめったに良い考えではありません。

これは、ファイルを結合するために私が考えることができる最も簡単な方法です。

/*First, generate some dummy data*/

data cy2002 cy2004 cy2005;
      do year = 2002,2004, 2005;
            do _n_ = 1 to 10;
                  date =mdy(ceil(ranuni(1)*12),1,year);
                  format date yymmdd10.;
                  if year = 2002 then output cy2002;
                  if year = 2004 then output cy2004;
                  if year = 2005 then output cy2005;
            end;
      end;
run;

/*
  Generate a listing of all sas datasets in the appropriate library.
  For simplicity, assume these are sequentially named and are the only datasets in the library.
*/

ods listing close;
ods output members = members;
proc datasets lib = work memtype=data;
run;
quit;
ods listing;

/*Use the listing dataset to create a view that pieces together all of the calendar year datasets*/ 

data _null_;
      set members end = eof;
      if _n_ = 1 then call execute('data combined /view = combined; set ');
      call execute(name);
      if eof then call execute('; run;');
run;

次に、ビューを使用して日付に基づいて会計年度を計算し、それをさらに処理が必要な場合に使用できます。

于 2015-05-08T14:34:51.990 に答える