如何在sas中对连续的整数进行分组?

时间:2016-09-28 11:50:15

标签: sas grouping sequential

我想在sas中对连续的整数进行分组。

data h;
input integer temperature;
cards;
1 33
2 33
3 34
5 35
6 37
9 33
10 34
;
run;

我希望我的输出看起来像这样

1 33 1
2 33 1
3 34 1
5 35 2
6 37 2
9 33 3
10 34 3

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

查看DIF并保留功能。请注意,您的条件和示例不匹配。你说连续但似乎意味着增加0 OR 1.

DIF计算当前和之前观察之间的差异。 RETAIN在行之间保存一个值,直到它被明确更改为止。

Data want;
Set have;
 Retain group 0;
 Temp_dif = dif(temp);
 If temp_dif > 1 then group + 1;
 Run;

编辑:

Data want;
Set have;
 Retain group 0;
 INT_dif = dif(integer);
 If int_dif > 1 then group + 1;
 Run;