포스팅 목차
o COMPRESS
대상 문자열로부터 지정한 문자를 제거한다.
Category: | 문자함수(문자열처리함수) |
MAIN |
문 법
COMPRESS (<source><, chars><, modifiers>) |
Arguments
- source
사용자가 지정한 문자가 제거되는 문자형 상수, 변수 또는 표현식을 지정한다.
Optional Arguments
- characters
는 삭제가 되는 문자 목록을 설정하기 위한 문자형 상수, 변수 또는 표현식을 지정한다. 기본적으로 이 목록의 문자를 원본 인수에서 제거한다. 세 번째 인수에서 K modifier(수정자) 를 지정하면 이 목록에서 지정한 문자만 결과에 유지한다.
- modifiers(수정자)
공백이 아닌 개별 문자가 COMPRESS 함수의 동작을 제어하는 문자형 상수, 변수 또는 표현식을 지정한다. 공백은 무시됩니다. modifiers로 사용할 수 있는 문자는 다음과 같다.
변 경 자 | 설 명 |
a 또는 A | 제거 문자열 대상에 알파벳(A-Z,a-z) 추가 |
c 또는 C | 제거 문자열 대상에 제어문자 추가 |
d 또는 D | 제거 문자열 대상에 숫자 추가 |
f 또는 F | 제거 문자열 대상에 underscore character(_) 와 알파벳 추가 |
g 또는 G | 제거 문자열 대상에 그래픽 문자 추가 |
h 또는 H | 제거 문자열 대상에 가로 탭(수평 탭)을 추가 |
i 또는 I | 제거 문자열 대상에 대해 대소문자를 무시 |
k 또는 K | 지정 문자를 보호한다. |
l 또는 L | 제거 문자열 대상에 소문자를 추가 |
n 또는 N | 제거 문자열 대상에 숫자, underscore character, 알파벳을 추가 |
o 또는 O | 처음 수행시 지정된 옵션이 고정되어서 다음 수행에서도 지정 |
p 또는 P | 제거 문자열 대상에 구두점을 추가 |
s 또는 S | 제거 문자열 대상에 공백 문자 추가(blank, horizontal tab, vertical tab, carriage return, line feed, and form feed). |
t 또는 T | 첫 번째 인수와 두 번째 인수의 뒤부분 공백 제거 |
u 또는 U | 제거 문자열 대상에 대문자 추가 |
w 또는 W | 제거 문자열 대상에 printable characters 추가 |
x 또는 X | 제거 문자열 대상에 hexadecimal characters 추가 |
상세 내용
반환되는 변수의 길이
DATA 단계에서 COMPRESS 함수가 아직 길이가 할당되지 않은 변수에 값을 반환하는 경우 해당 변수의 길이는 첫 번째 인수의 길이로 설정된다.
The Basics
COMPRESS 함수에는 NULL 인수를 지정할 수 있다. NULL 인수는 길이가 0인 문자열로 취급된다.
인수의 수를 기반으로 COMPRESS 함수는 다음과 같이 작동한다.
인수의 개수 | 결과 |
첫 번째 인수, source | 인수에서 모든 공백을 제거되었습니다. 인수가 모두 공백인 경우 결과는 길이가 0인 문자열이 된다. 결과를 길이가 고정된 문자형 변수에 할당하면 해당 변수 값에 공백이 추가되어 정의된 길이를 채운다. |
첫 번째 인수와 두 번째 인수, source 와 characters | |
3개의 인수, source, chars, modifier(s) |
함수 비교
함수명 | 함수내용 |
COMPBL | 문자열에서 다중 Blank를 한 개의 Blank로 변경한다. |
COMPRESS | 문자열로부터 지정한 문자를 제거한다. |
LEFT | 문자열을 왼쪽으로 정렬한다. |
TRANSLATE | 문자열중에서 지정된 문자(변경대상문자)를 변경하기 위한 문자로 변경한다. |
TRANTAB | 데이터 문자열을 지정한 인코딩(Encoding) 변환테이블(Translation tables)에 해당하는 문자열로 변경(Transcodes)한다. |
TRANSTRN | 문자열에서 지정한 하위 문자열이 존재하는 경우 해당하는 모든 항목을 변경하거나 제거한다. |
TRANWRD | 문자열 내에서 변경하기 위한 특정 문자열을 사용자가 지정한 다른 문자열로 변경한다. |
TRIM | 문자열에서 문자열 뒷부분에 존재하는 공백을(trailing blanks) 제거한다. |
함수명 | 선행 공백(Leading blank) 제거 | 후행 공백(Trailing Blank) 제거 | 내부 공백(In-Between Blank) 제거 | 문자열이 공백이면 문자를 반환하지 않는다. | 다수의 공백을 하나의 공백으로 변경. |
LEFT | X | ||||
TRIM | X | ||||
TRIMN | X | X | |||
STRIP | X | X | X | ||
COMPRESS | X | X | X | X | |
COMPBL | X | X | X |
(출처 : SAS Example Code - How to Remove Blanks In SAS With Strip, Compress & Trim )
MAIN |
예제
예 제 1 :
기본적 BLANK 제거, 대소문자구분 없이 제거, TAB을 제거, 지정 문자를 Keep 한다.
SAS Statements |
data COMPRESS;
a = 'AB C D ';
b = compress(a);
put b;
x = '123-4567-8901 BABab 234-5678-9012 c';
y = compress(x,'ABCD','l');
put y;
x = '1 2 3 4 5';
y = compress(x,,'s');
put y;
x = 'Math A English B Physics A';
y = compress(x,'ABCD','k');
put y;
run;
Results |
ABCD
123-4567-8901 234-5678-9012
12345
ABA
예 제 2 :
변경자 o의 활용방법으로 처음 지정된 A 문자가 다른열들에서 다른 변경자를 대체한다.
SAS Statements |
DATA O_MODIFIER;
INPUT STRING $15. @16 LOOK_FOR $1.;
POSITION = compress(STRING,LOOK_FOR,'io');
DATALINES;
Capital A here A
Lower a here L
Apple P
;
Results |
STRING LOOK_FOR POSITION Capital A here A Cpitl here Lower a here L Lower here Apple P pple |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 함수(SAS Function) 리스트 링크 |
반응형
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 103. CONVX 함수 (0) | 2018.11.30 |
---|---|
【SAS 함수】 102. CONSTANT 함수 (0) | 2018.11.30 |
【SAS 함수】 100. COMPOUND 함수 (0) | 2018.11.30 |
【SAS 함수】 99. COMPLEV 함수 (0) | 2018.11.30 |
【SAS 함수】 98. COMPGED 함수 (0) | 2018.11.30 |
댓글