0

Forecast_2013 から 2022 のテーブルをループで生成し、すべてのデータセットを 1 つのテーブルにマージしました。しかし今、私は年に関係なく、ループ内のデータセットをマージしたいと考えています。来年は 2023 年または 2024 年になります...手動で Forecast_2023 を設定したくありません。マクロを使用してループするにはどうすればよいですか?

Data P_OT.FORECAST(DROP=td qq AGE1 AGE2 AGE3 AGE4  AGEBANDFCST020 AGEBANDFCST030 AGEBANDFCST035P
     HSI1_2012 HSI1_2013 HSI1_2014 HSI1_2015 HSI1_2016 HSI1_2017 HSI1_2018 HSI1_2019 HSI1_2020  HSI1_2021 HSI1_2022);

set FORECAST_2013;set FORECAST_2014;set FORECAST_2015;set FORECAST_2016;
set FORECAST_2017;set FORECAST_2018;set FORECAST_2019;set FORECAST_2020;
set FORECAST_2021;set FORECAST_2022;
run;
4

2 に答える 2

2

スコットが投稿したものに代わるものは次のとおりです。

*Assign library to folder where FORECAST_ files are located;
libname NAME 'C:\Path to Folder';

*Data step to stack files;
Data P_OT.FORECAST(DROP=td qq AGE1 AGE2 AGE3 AGE4  AGEBANDFCST020 
    AGEBANDFCST030 AGEBANDFCST035P HSI1_:);
    set NAME.FORECAST_:;
run;

これにより、SQL を使用してマージするデータセットと削除する変数のリストを作成する代わりに、名前のプレフィックス リストを使用して Scott が投稿したものと同じ結果が得られるはずです。

上記のコードは、"FORECAST_" で始まる libname ライブラリ内のすべてのデータセットをスタックします。また、作成されたデータセット内の「HSI1_」で始まるすべての変数も削除されます。

于 2013-11-07T19:23:15.397 に答える