2017-04-19 98 views
0

我想創建一個指示符變量「same_first_two_nearby」。這表明觀測的前兩個字符等於附近的觀測值。我嘗試使用「複製方法」,但我失敗了。因爲該方法只能「刪除」重複但不能保留。如何識別第一個流中具有相同字符的兩行

PROC SORT data=temp NODUPKEY; 
BY customer_IN; 
RUN; 

我的數據的例子如下。

data temp; 
input customer_IN $ 1-8 ; 
cards; 
ADJOHN. 
ADMARY. 
ADjerry. 
BWABBY. 
CFLUCY. 
CFLINDA. 
EFLAGNA. 
KTPAKAO. 
KTWANDA.  
; 
run; 
proc print data=temp;run; 

我想生成如下結果。

customer_IN same_first_two_nearby 
    ADJOHN.      1 
    ADMARY.      1 
    ADjerry.      1 
    BWABBY.      0 
    CFLUCY.      1 
    CFLINDA.      1 
    EFLAGNA.      0 
    KTPAKAO.      1 
    KTWANDA.      1 

在此先感謝。

+0

想下次檢查僅觀察到當前的觀察。或者你想檢查前兩個字母的相似性的所有觀察 –

+0

我只想觀察當前的觀察結果。我先把它們分類。 –

回答

1

爲此,您可以使用包含前兩個字符的輔助柱,只要它是排序按原來的問題:

data temp; 
input customer_IN $ 1-8 initials $ 1-2; 
cards; 
ADJOHN. 
ADMARY. 
ADjerry. 
BWABBY. 
CFLUCY. 
CFLINDA. 
EFLAGNA. 
KTPAKAO. 
KTWANDA.  
; 
run; 

data want; 
set temp; 
by initials; 
same_first_two_nearby = not(first.initials and last.initials); 
run; 
+0

謝謝@ user667489!這是一個很大的幫助。我從你身上學到很多東西。 –

+0

我改變了一點。我使用substr(customer_IN,1,2)作爲首字母縮寫。 –

相關問題