26%macro irmst_market_regenerate_econsim(ds_in_scenario =
34 __common__vars__quoted__csv__
37 proc contents data=&ds_in_econsim. out=econsim_cont(keep=NAME);
39 proc sort data=econsim_cont;
43 proc contents data=&ds_in_scenario. out=scenario_cont(keep=NAME);
45 proc sort data=scenario_cont;
50 merge econsim_cont(in=a) scenario_cont(in=b);
52 if a and b then output;
56 select count(*), name into :__common__vars__cnt__, :__common__vars__ separated by
" "
61 %
if &__common__vars__cnt__.>0 %then %
do;
63 %put NOTE: This is a
short summary about the common variables: &=__common__vars__cnt__ &=__common__vars__;
66 %let __common__vars__csv__ = %sysfunc(prxchange(s/\s+/%str(, )/i, -1, &__common__vars__.));
68 %let __common__vars__quoted__csv__ = %sysfunc(prxchange(s/(\w+)/
"$1"/i, -1, %bquote(&__common__vars__csv__.)));
74 declare hash h(dataset:
"&ds_in_scenario.(rename=(date=_date_)");
75 h.definedata(&__common__vars__quoted__csv__.);
76 h.definekey(
"_date_");
79 %
do i_var=1 %to &__common__vars__cnt__.;
80 var_&i_var.=%scan(&__common__vars__., &i_var., %str( ));
84 %
do i_var=1 %to &__common__vars__cnt__.;
85 %scan(&__common__vars__., &i_var., %str( ))=var_&i_var. * %scan(&__common__vars__., &i_var., %str( )) ;
91 %put NOTE: The Regeneration of the economic simulation data has been performed.;
94 %put NOTE: The Regeneration of the economic simulation data has not been performed.;
95 %put NOTE: There are not common variables between the scenario data set and the economic scenario data set.;