求助一个问题,总目标是做分类合计的,但是他要求的分类全是闭区间,就有点麻烦了,想了一会感觉用HASH表做比较好,但是本人HASH水平也能做个inner join,故还请求助。。。
数据如下:(subjid是观测的ID,在这里只列出了 ‘第一个人’ 的情况)
data a;
input value x subjid;
cards;
1 1 001
2 1 001
3 2 001
4 2 001
5 2 001
6 3 001
7 3 001
8 5 001
;
run;
想做成的结果:
 
| Subjid | X | SUM | 说明 | 
| 001 | [1,2] | 15 | 1+2+3+4+5 | 
| 001 | [2,3] | 25 | 3+…+7 | 
| 001 | [3,4] | 13 | 6+7+0 | 
| 001 | [4,5] | 8 | 0+8 | 
| 001 | [1,5] | 36 | 1+…+8,觉得麻烦就不做哈 | 
| 002 | [1,2] | … | 
 | 
| … | … | … | 
 | 
请朋友们帮助哈,谢谢!!
更新:
大概是这个意思,
data b;
if 0 then set a;
if _n_=1 then do;
  dcl hash h(dataset:'a');
  h.definekey('x');
  h.definedata(all:'Y');
  h.definedone();
end;
do i = 1 to 4;
  j = i + 1;
  if not h.find(key:i) or not h.find(key:j) then sum+value;
  output;
end;
run;
不过值不对,而且也没考虑到subjid。。
在线等呵,ths~~