2013-08-20 3 views
1

변수 "TEXT"의 관측치가 8 개의 숫자를 포함하는 경우, 값 1을 취하는 새로운 변수를 SAS에 생성하고 싶습니다. 문제는 TEXT가 문자 변수라는 것입니다. SAS에서 형식 검색을 할 수 있습니까?SAS 특정 관측 포맷

답변

4

'8 숫자'로 가정하면 실제로 8 자리를 의미합니다. 8 개의 개별 번호에 대해서는 다를 수 있습니다. 아래 코드와 같은 것이 도움이 될 수 있습니다. 당신이 필요로

data indata; 
length TEXT $20; 
input TEXT; 
datalines; 
a 
123 
12345678 
A12345678 
; 
run; 

data outdata; 
set indata; 
length TEXT_DIGITS $20 _8_DIGIT_INDICATOR 3; 
TEXT_DIGITS = compress(TEXT, , 'kd'); 
if length(TEXT_DIGITS)=8 then _8_DIGIT_INDICATOR = 1; 
run; 

논리를 조정 - 예 : COMPRESS 함수에서 숫자를 보관 의미 수정 'KD는'여기 마법 않습니다 입력 값에 다른 문자가 허용되지 않는 경우. ANYDIGIT, NOTDIGIT와 같은 기능도 유용 할 수 있습니다.

+0

정말 도움이되었습니다. 나는 숫자를 의미했다. 숫자가 예를 들어 글자로 분리되어있는 관찰을 원하지 않으면 "." 또는 "/"를 사용하면 쉽게 제거 할 수 있습니까? –

+0

또한이 코드에서 절차는 하나의 데이터 세트 인 indata에서만 수행됩니다. 하나의 라이브러리에 모두 들어있는 수많은 데이터 세트 (예 : 100 개)에 대해 sas가이를 수행 할 수 있습니까? –