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 변수 + *로 구성되어 있습니다.
# 예제 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 에 저장합니다.
# 예제 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;
- COMPRESS(text, , 'a'): 원하는 문자만 남기게 되고 알파벳 제거
data test1;
text = 'lalala hahaha123123';
text2 = compress(text, ,'a');
put text2;
run;
- COMPRESS(text, ,'s'): 원하는 문자만 남기게 되고 공백 문자 제거
data test1;
text = 'lalala hahaha123123';
text2 = compress(text, ,'s');
put text2;
run;
- COMPRESS(text, ,'p'): 원하는 문자만 남기고 구두점 제거
data test1;
text = 'lalala...*** hahaha123123';
text2 = compress(text, ,'p');
put text2;
run;
- COMPRESS(text, , 'ds'): 숫자와 공백을 제거하는 function 입니다. (modifier를 조합할 수 있습니다.)
data test1;
text = 'lalala...*** hahaha123123';
text2 = compress(text, ,'ds');
put text2;
run;
... View more