2017-04-19 50 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)作为首字母缩写。 –

相关问题