2016-09-28 74 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

相關問題