사이트맵  |  Contact Us
 
홈 > SAS Stories > SAS 활용 노하우
SAS 초보용 팁 3 변수의 생성과 기본함수 2010.08.04
MYSAS 9087 0
http://www.mysas.co.kr/sas_club/d_freeboard.asp?b_no=1502&gotopage=4&con=subject&keyword=&cmd=content&bd_no=04&gubun=

 

변수의 생성과 기본함수
 
산술할당문
SAS 식은 사용자가 가장 알기 쉬운 방법으로 기술하게 되어 있습니다. 즉, 익숙하게 보아온 연산자와 명령의 결합으로 이루어져 있으므로 함수의 사용, 괄호 등으로 원하는 값을 유도해 낼 수 있습니다.
예를 들어 어떤 변수 x에 일률적으로 10을 더한 값을 새로운 변수로 하고 싶다면 x1=x+10 ; 이라 써주면 x1이라는 새로운 변수가 생성되는 것입니다. 다만 항상 등호 오른쪽에 산술식을 써주어야합니다.
 
 
내장된 함수
SAS에서 자신이 원하는 대로 프로그램을 직접 짤 수도 있지만 보통 SAS 내에 같은 기능을 하는 내장함수가 100여 개 포함되어있습니다. SAS help 나 다음 링크를 참조하시길 바랍니다.
예를 들어 y=x1+x2+x3; (y=sum(of x1-x3); 와 같은 결과) 혹은 y=(x1+x2+x3)/3; ( y=mean(of x1-x3); 와 같은 결과)
다만 조심해야 할 점은 결측치가 있을 때는 함수를 이용할 때와 직접 수식을 넣을 때의 결과가 다르므로 주의해야합니다.
 
SAS 연산자
SAS연산자는 자료의 산술계산, 비교 및 논리식의 비교 등을 수행할 때 필요한 기호입니다.
위에서 언급한 것처럼 산술, 비교, 논리, 기타 4가지 연산자가 있습니다.
 
산술연산자
 + , - ,  *,  /,  제곱은 **2, 세제곱은 ***3
 
비교연산자
=, <, >, ^=, <=, >=, ^>, ^<
(x<y)  ->   괄호 안이 사실이면 1, 사실이 아니면 0
 
논리연산자
&(and의 의미),  |(or의 의미), ^(부정의 의미)
 
기타연산자
<>(maximum의 의미), ><(minimum의 의미), ||(문자들 사이의 병합)
 
기타 유용하거나 자주 쓰는 기본 내장 함수들(x1는 변수를 의미합니다)
SUM(x1, x2, x3) 이나 SUM(of x1-x3) – 합
 
MEAN(x1,x2,x3) 이나 MEAN(of x1 – x3) – 평균
 
ABS(x1) – 절대값
 
MOD(x1, x2) – x1을 x2로 나누고 남은 나머지
 
SQRT(x1) – 제곱근값
 
INT(x1) – 정수부분
 
ROUND(123.456, .01) – 첫 번째 수를 소수 두 번째 자리까지 남겨서 세 번째에서 반올림
 
LOG(X1) – 자연로그, 상용로그는 LOG10(x1)
 
EXP(x1) – 지수 함수값
 
IF x1 IN(2,3) – x1 이 가진 값 중에 2나 3이 가진 것을 추출해냅니다. 반대는 NOT IN
 
TRIM(x1) – 문자 사이의 공백은 없어지지 않으나 문자 좌우의 공백을 없애줍니다.
 
SUBSTR(x1, 시작지점 자릿수, 그 후 선택할 자릿수) – 예를 들어 SUBSTR(123456, 2, 3) 을 입력하면 앞에서 두 번째인 2부터 3자리인 234 가 나오게 됩니다.
 
COMPRESS(x1) – 좌우뿐 아니라 문자 사이에 있는 공백도 모두 없애줍니다. || 로 문자 둘을 병합할 때 쓰면 좋습니다. 예를 들어 COMPRESS(x1||x2)
 
RETAIN – 초기값을 지정해줍니다. 예를 들어 RETAIN weight2 0 ; 은 weight2 라는 변수의 첫 번째 값은 0이 되게 하라는 뜻입니다.
 
LAG – 전월비 혹은 전년동월비 분석 시에 매우 유용한 함수로써 하나의 측정치를 시간이 지나고 다시 측정한 후 서로 비교할 때 혹은 중복 데이터를 체크할 때 유용합니다.
예) x2 = lag(x1) 처럼 입력하면 x2는 초기값 한 칸을 빼고 두 번째 observation 부터는 x1 과 모두 같은 값을 가진 변수가 됩니다. 즉, x1이 한 칸씩 밀리게 됩니다. 한 칸씩 밀린 여파로 x1의 가장 마지막 데이터는 x2 열에서는 사라지게 됩니다.
 
 
휴대폰 번호
휴대폰 인증번호
 
 오늘의 팁 8/5 첫번째 행의 머리글없이 csv 파일 생성하는 방법!
 오늘의 팁 8/4 RENAME 함수를 이용한 sas files 과 컴퓨터내 파일, 디렉토리 이름 바꾸기