2016-09-28 66 views
0

我想在sas中连续组成整数。如何对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 

感谢您的帮助,提前。

+0

提示:'RETAIN'。 –

+0

我无法理解保留的完整概念。 – CHAa

+0

你介意举个例子吗?或代码? – CHAa

回答

1

看看DIF并保留功能。请注意,您的标准和示例不匹配。你说连续的,但似乎意味着增加0或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; 
+0

谢谢,还有另外一个问题 – CHAa

+0

'group +(temp_dif> 1);'可能是我怎么做的,特别是你可以在那里直接使用dif(temp)('group +(dif(Temp) > 1);'),但这种方式对初学者来说可能更好。 – Joe

+0

另外 - 它在我看来,组是基于'整数'而不是'温度',因此当你看温度时明显的差异。 – Joe

相关问题