리포팅 혹은 신규 데이터 필드를 생성하기 위해 SAS 내에서 하나 이상의 값을 결합해야 하는 경우가 더러 있습니다. SAS는 해당 작업을 위해 CAT * 기능이라고 불리는 기능을 지원합니다. 해당 함수를 활용하여 SAS 변수와 리터럴 값을 다양한 방식으로 병합 할 수 있습니다. SAS 결합 연산자 (||)를 통해서 값을 병합 할 수도 있습니다. 이 문서에서는 가장 일반적으로 사용되는 함수에 대해 설명합니다. 자세한 내용은 문서 하단의 문서 참조를 참조하시기 바랍니다.
SAS 강사 @AndyRav는 이와 관련하여 쉽게 지식을 습득할 수 있도록 시청각 가이드를 제공합니다. 혹은 하단의 내용을 통해 바로 도전해 보실 수 있습니다.
CATS 함수를 통한 트리밍된 값 결합
CATS 함수는 먼저 앞뒤 공백을 제거(트리밍)하여 값을 결합한 다음 연결된 문자열로 다시 돌아갑니다.
data report(keep=report); set sashelp.class; report = cats(name, ', Age:',age); |
출력 예 :
Alfred, Age:14 |
Alice, Age:13 |
Barbara, Age:13 |
Carol, Age:14 |
CATX 함수로 구분된 값 목록 만들기
CATX 함수를 사용하여 여러 값을 결합하고 하나 이상의 문자 구분 기호로 구분하는 문자열을 만듭니다. CATS 함수와 마찬가지로 CATX는 값을 결합하기 전에 앞뒤 공백을 트리밍합니다.
data csv (keep=extract); set sashelp.class; extract = catx(',',name,age,weight,height); run; |
출력 예:
Alfred,14,112.5,69 |
Alice,13,84,56.5 |
Barbara,13,98,65.3 |
Carol,14,102.5,62.8 |
Henry,14,102.5,63.5 |
James,12,83,57.3 |
CATX 또는 CATS를 사용하는 경우 생성 값의 길이에 주의해야 합니다. 길이가 정해지지 않은 변수에 결과를 할당하는 경우, 변수의 기본 길이는 200 바이트입니다. 결과값을 SQL 또는 SAS 매크로 처리에서 중간 값으로 사용하는 경우 길이가 달라질 수 있습니다. 자세한 사항은 반환된 변수의 길이에 관한 가이드를 참조하시기 바랍니다.
빠른 변수 목록 지정하기
CAT * 함수는 변수 목록을 지정하기 위해 OF 구문을 지원합니다. 예를 들어,이 프로그램은 CLASS 데이터 세트 내 모든 변수 값을 쉼표로 구분 된 목록으로 작성합니다. 범위를 지정하는 이중 하이픈에 유의해야 합니다.
data all (keep=full); set sashelp.class; full = catx(',',of name--weight); run; |
이 프로그램은 | 모양으로 구분 된 문자 값 목록을 작성합니다. 범위 지정자에서 하이픈 사이의 문자 키워드를 확인하실 수 있습니다. 숫자 값에만 숫자를 입력해야 합니다. 자세한 사항은 SAS 변수 목록을 참조하시기 바랍니다.
data char (keep=text); set sashelp.class; text = catx('|',of name-character-weight); run; |
SAS의 결합 연산자
대부분의 프로그래밍 언어와 마찬가지로 SAS 프로그램 내에는 값의 간단한 인라인 조합을 허용하는 결합 연산자가 존재하며, 바로 이중 세로줄(버티컬 바) ||입니다.
data report(keep=report); set sashelp.class; report = name || ', Age: ' || age; run; |
이 결합 연산자는 편의성을 제공하나 CAT * 함수와 같은 유연성을 제공하지 않습니다. 이 연산자는 SAS에서 오랫동안 지원되어 왔습니다.
참고: CAT * 함수 및 결합 연산자는 문자 및 숫자 변수를 더 큰 단일 문자 값으로 결합 할 수 있습니다. 이 프로세스는 다른 변환 방법과 달리 숫자 값을 문자로 변환하고 SAS 메모 또는 경고를 생성하지 않습니다. (예: 문자 변수에 숫자 값을 할당하는 경우)
더 살펴보기
Luise Hadden (@louisehadden)의 기타 CAT 활용 사례 [CAT * 기능에 관한 모든 것]
SAS 기술 지원, Kevin Russell의 SAS에서 CATS를 계산하는 방법
SAS 문서
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.