BookmarkSubscribeRSS Feed

문자열 제거 - COMPRESS

Started ‎07-29-2025 by
Modified ‎07-29-2025 by
Views 674

 

Function: COMPRESS

- COMPRESS는 문자열에서 원하지 않는 문자들을 제거해주는 SAS의 내장 함수입니다.

 

 

■ 기능

- 기본 제공 기능: 공백 제거

- 옵션: 특정 문자열 제거

 

# 예제1 - 공백 문자열 제거

 

compress 함수에 변수 값 하나만 할당하게 된다면 모든 공백 문자를 제거할 수 있습니다.

 

data city; 
input name $char20.;
datalines;
Los Angeles
		Fort Worth
		San Francisco
		Oklahoma City
El          Paso
;
run;

 

City라는 데이터셋을 생성했습니다.

DATALINES라는 syntax를 사용해 5개 도시명을 직접 입력했습니다.

일부 도시명 앞뒤에 공백이나 탭이 포함되어 있습니다.

 

 

 

data city2;
set city;
compress_name = '*' || compress(name)  || '*';
run; 

 

city 데이터셋을 읽어와서 city2 데이터셋을 생성합니다

compress_name이라는 새로운 변수로 name 변수에서 모든 공백을 제거합니다

'*' || ... || '*'는 압축된 데이터에 앞뒤에 별표(*)를 붙입니다

compress_name을 보면, '*' || compress(name) || '*' 이라는 구문이 있습니다.

해당 구문에서 '||'는 연결연산자로 왼쪽 문자열과 오른쪽 문자열을 붙여서 하나의 문자열로 만드는 기능이 있습니다.

compress_name은 결국 * + name 변수 + *로 구성되어 있습니다.

 

 

image.png

 

 

 

 

 

# 예제 2 - 특정 문자열 제거

 

data city; 
input name $char20.;
datalines;
Los** Angeles
	*	Fort Worth
	*	San Francisco
	**	Oklahoma /City
El  ****        Paso
;

data city2;
set city;
compress_name = compress(name,'*');
run; 

 

COMPRESS 함수는 (변수, 제거하고 싶은 문자열) 형태로 사용하여, 지정한 문자열을 해당 변수에서 제거할 수 있습니다.

위 코드를 보면, name 변수에서 '*' 문자를 제거하고, 그 결과를 새로운 변수 compress_name 에 저장합니다.

 

 

image.png

 

 

 

 

# 예제 3 - 문자열만 남기기 (modifier 옵션)

- COMPRESS(text, ,'d'): 원하는 문자만 남기게 되고 숫자(digit)는 제거

 

data city; 
input name $char20.;
datalines;
Los12Angeles
23	Fort Worth
	San12 Francisco
	2323Oklahoma /City
El  ****233        Paso
;

data city2;
set city;
compress_name = compress(name, ,'d');
run; 

 

image.png

 

 

 

- COMPRESS(text, , 'a'): 원하는 문자만 남기게 되고 알파벳 제거

 

data test1;
text = 'lalala hahaha123123';
text2 = compress(text, ,'a');
put text2;
run;

 

image.png

 

 

 

- COMPRESS(text, ,'s'): 원하는 문자만 남기게 되고 공백 문자 제거

 

data test1;
text = 'lalala hahaha123123';
text2 = compress(text, ,'s');
put text2;
run;

 

image.png

 

 

 

- COMPRESS(text, ,'p'): 원하는 문자만 남기고 구두점 제거

 

data test1;
text = 'lalala...*** hahaha123123';
text2 = compress(text, ,'p');
put text2;
run;

 

image.png

 

 

 

- COMPRESS(text, , 'ds'): 숫자와 공백을 제거하는 function 입니다. (modifier를 조합할 수 있습니다.)

 

 

data test1;
text = 'lalala...***     hahaha123123';
text2 = compress(text, ,'ds');
put text2;
run;

 

image.png

 

 

Contributors
Version history
Last update:
‎07-29-2025 05:39 AM
Updated by:

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand in the Innovate Hub.

Watch Now →
Article Labels
Article Tags