1
변수 "TEXT"의 관측치가 8 개의 숫자를 포함하는 경우, 값 1을 취하는 새로운 변수를 SAS에 생성하고 싶습니다. 문제는 TEXT가 문자 변수라는 것입니다. SAS에서 형식 검색을 할 수 있습니까?SAS 특정 관측 포맷
변수 "TEXT"의 관측치가 8 개의 숫자를 포함하는 경우, 값 1을 취하는 새로운 변수를 SAS에 생성하고 싶습니다. 문제는 TEXT가 문자 변수라는 것입니다. SAS에서 형식 검색을 할 수 있습니까?SAS 특정 관측 포맷
'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와 같은 기능도 유용 할 수 있습니다.
정말 도움이되었습니다. 나는 숫자를 의미했다. 숫자가 예를 들어 글자로 분리되어있는 관찰을 원하지 않으면 "." 또는 "/"를 사용하면 쉽게 제거 할 수 있습니까? –
또한이 코드에서 절차는 하나의 데이터 세트 인 indata에서만 수행됩니다. 하나의 라이브러리에 모두 들어있는 수많은 데이터 세트 (예 : 100 개)에 대해 sas가이를 수행 할 수 있습니까? –