본문 바로가기
SAS

[SAS] sas 숫자앞에 0을 붙여 자리수 맞춰주는 방법 코드화작업응용(if, length, compress, || 이용)

by SASBIGDATA김진휘 2014. 2. 21.

sas에서 수치 또는 코드가 데이터로 있는 경우 서로 자리수가 맞지 않는 경우가 있다.

이럴 경우 앞에 0또는 00등을 붙여서 자리수를 맞춰주는 작업에 대해서 알아보자. 

조인키등을 만들때 자주사용된다.

 

예제는 문자형데이터이지만 수치형 데이터라도 이런 형식으로 작업하면 가능하다.

참고로 수치형데이터는 우측정렬, 문자형데이터는 좌측정렬이 되니

현재 k변수와 k1변수는 문자형, 변수 m은 수치형이라는것을 사진만 봐도 알수가 있다.

 

이 작업에서 사용되는 것들은 if문과 length, compress, || 크게 이 네가지가 사용된다고 볼 수 있다.

  

 

 

[코드과정]

data a;
input k $@@;
cards;
1 12 230 3 222 99
;
run;

data b;
set a;
m=length(k);
if m=1 then k1=compress('00')||compress(k);
else if m=2 then k1= compress('0')||compress(k);
else if m=3 then k1= k;
run;

 

a라는 데이터가 있는데 모두 세자리수로 표현을 하고 싶다.

1자리수 같은 경우 앞에 00을 붙이고 싶고, 2자리일 경우는 0을 붙여 모두 3자리로 통일시켜보자.

먼저 length는 문자의 길이를 알려주는데 m=length(k)를 사용해 k변수의 데이터들의 길이를 m이라는 변수에

나타낸다.

그 뒤 if문을 이용해 m=1인경우는 1자리를 나타내니 기존의 k변수 앞에 00을 붙인다는 것인데

이때 기호 || 이 두개를 하나로 붙여라는 명령어이다.

그리고 중간에 compress는 혹시나 데이터 중간에 공백이 있을 경우 공백을 제거 하라는 함수이다.

 

코딩과정과 사진을 같이 본다면 쉽게 이해가 될 것이다.

 

www.sasbigdata.com 김진휘

 

댓글