2017-04-19 7 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)을 이니셜로 사용합니다.; –