|
proc import datafile="xxxxxxxxx\TEMP.XLSX"
out=aa1;
run;
data a2;
set aa1;
name=input(substr(product_name,9,2),best.);
if strip(lowcase(quality_indicator))="good" then subcat=1;
if strip(lowcase(quality_indicator))="bad" then subcat=2;
cost=unit_count; *****seen unit_count as the cost***;
/* input(cost_amount,??best.);*/
run;
proc sort data=a2;by year name subcat product_details;run;
****get product_name for all bad/good***;
data a3;
set a2;
by year name subcat product_details;
if first.subcat then sum=cost;
else sum+cost;
if last.subcat;
run;
proc sort data=a3;by year name subcat product_details;run;
proc transpose data=a3 out=a4 prefix=cost;
by year name;
id subcat;
var sum;
run;
data a5;
set a4;
if nmiss(cost1,cost2)=0 then differ=cost2-cost1;**bad minus good***;
subcat=2;
keep year name differ subcat;
run;
proc sort data=a5;by year name subcat;run;
proc sort data=a3;by year name subcat;run;
data final;
merge a3(in=a) a5(in=b);
by year name subcat;
if a;
Bad_Good_Diff=differ;
keep year name subcat product_details Bad_Good_Diff
product_name quality_indicator;
run;
使用给的数据集,code可以直接copy。
可以得到如上结果
|