告诉两个不同数据集中两个变量的最高和

时间:2016-08-17 05:46:17

标签: sas

数据集jan就像这样

cc spend 
1   100
11  200
12  550
13  100
14  200

数据集就像这样

cc spend 
1   100
11  200
12  550
13  100

在这里我们必须找出哪个月是销售更高的数据集jan或数据集feb.first我们必须计算jan&的花费总和。花费在feb上的总和,然后找到更高的。

我试试这段代码

data jantotal;
set jan;
sum spend;
run;

data febtotal;
set feb;
sum spend;
run;

2 个答案:

答案 0 :(得分:0)

我不确定你的最终目标是什么,例如:您想要选择一个数据集而不是另一个数据集或者您只想要总结哪个月的销售额最高。

你可以先用proc sql做这样的事情,每个月创建一个输出数据集total和花费总和。

proc sql;
  create table total as 
   select "Jan" as month, sum(spend) as total
    from jan
     group by month
      UNION
    select "Feb" as month, sum(spend) as total
     from feb
      group by month;
quit;

如果您提供有关最终输出应该是什么的更多信息,我可以提供更多有用的代码。

答案 1 :(得分:0)

您的代码应如下所示:

data jantotal;
  set jan end=last;
  retain sum 0; /* this line is optional */
  sum + spend;
  if last;
  month = "jan";
  drop spend cc;
run;

data febtotal;
  set feb end=last;
  retain sum 0; /* this line is optional */
  sum + spend;
  if last;
  month = "feb";
  drop spend cc;
run;

之后你应该连接数据集:

data total;
  set jantotal febtotal;
run;

排序结果:

proc sort data=total out=total_sorted;
  by descending sum;
run;

我想在这里创建一些宏程序来自动化编写这个程序的过程。这个解决方案与@Huw几乎相同(结果),但代码更长,使用的是datasteps而不是sql。