我有5个变量唯一的数据集。第五个是标识符变量。最后,我有一个第6个变量,它取决于标识符变量。
标识符变量可以出现在多个位置。对于标识符变量的给定值,因变量永远不会改变。
我有以下代码:
proc sql;
select
...
, count(distinct identifier) as n_ids
from
group by
选择每组4个独立变量的唯一标识符数。我希望将第6个变量的总和加上这个,如下所示:
sum(case when distinct identifier then dependent_var else 0 end)
这显然不起作用(并且有充分理由)。在sql步骤中找到这个总和的任何干净方法?
答案 0 :(得分:1)
最简单的解决方案可能是首先通过标识符汇总数据集:
proc sql;
select biggerstuff, identifier, max(depvar)
from yourdataset
group by biggerstuff,identifier;
quit;
然后在较大的查询中将其插入'from'语句的位置(选择blah,count(identifier),sum(depvar))。一旦你在内部查询中对它进行了预先总结,你知道每个标识符只能获得1行,因此不再需要它。