這可能很簡單。SAS:通過枚舉創建類
我需要創建一個類似於一個順序的變量,但順序只會在每次第二次觀察之後纔會增加。
在此先感謝!
date order
1-1-10 1
2-1-10 1
3-1-10 2
4-1-10 2
5-1-10 3
6-1-10 3
7-1-10 4
7-1-10 4
etc
這可能很簡單。SAS:通過枚舉創建類
我需要創建一個類似於一個順序的變量,但順序只會在每次第二次觀察之後纔會增加。
在此先感謝!
date order
1-1-10 1
2-1-10 1
3-1-10 2
4-1-10 2
5-1-10 3
6-1-10 3
7-1-10 4
7-1-10 4
etc
您將使用兩個主要工具:mod
函數和sum語句。 sum語句看起來像不正確的語法,但它是retain
的特殊情況。
_N_
是一個特殊的變量,充當您的觀察計數器。每當您的data
步驟從頂部到底部循環(即從data
到run
),_N_
遞增1。
通過在_N_
上使用mod
,我們可以對結果爲1的每兩個觀察值增加一個計數器。換句話說,如果您將觀測計數除以2並得到餘數1,則將1加1 order
。
例如:
_N_ _N_/2 Remainder Operation Value
1 1/2 1 0+1 1
2 2/2 0 N/A 1
3 3/2 1 1+1 2
4 4/2 0 N/A 2
5 5/2 1 2+1 3
6 6/2 0 N/A 3
最終,我們正在做的,我們在特定的條件下增加一些值的操作,隨身攜帶着,並重復。
這怎麼代碼如下:
data want;
set have;
if(mod(_N_, 2) = 1) then order+1;
run;
在數據步驟中,您可以使用自動變量_n_
(例如, ceil(_n_/2)
。
在SQL中,monotonic()
函數可以做同樣的工作。
或者因爲MOD(INT; 2)返回0或1,你可以簡單地使用'爲了+ MOD(_N_,2);' – Tom