과학과 기술/SAS
SAS 문법 - 5 각종 연산과 함수들
부르칸
2021. 9. 2. 02:26
1. 값을 할당하기
원본 데이터에 4개의 시험 점수가 존재할때 총점을 계산하여 데이터에 넣어보자.
DATA grades;
INPUT name $ 1-15 e1 e2 e3 e4 p1 f1;
examtotal = e1 + e2 + e3 + e4;
DATALINES;
Alexander Smith 78 82 86 69 97 80
John Simon 88 72 86 . 100 85
Patricia Jones 98 92 92 99 99 93
Jack Benedict 54 63 71 49 82 69
Rene Porter 100 62 88 74 98 92
;
RUN;
PROC PRINT DATA = grades;
VAR name e1 e2 e3 e4 examtotal;
RUN;
위 SAS코드에서 e1, e2, e3 e4를 더하여 examtotal이라는 변수에 넣고 모든 변수를 grades라는 데이터에 넣었다.
결측값이 있는 변수를 더하면 그 결과는 결측값이 된다.
새로운 변수를 만들어 넣을수도 있지만 기존 데이터의 값을 변경하여 그 값을 다시 기존 변수에 넣을수도 있다.
DATA grades;
INPUT name $ 1-15 e1 e2 e3 e4 p1 f1;
e2 = e2 + 8;
DATALINES;
Alexander Smith 78 82 86 69 97 80
John Simon 88 72 86 . 100 85
Patricia Jones 98 92 92 99 99 93
Jack Benedict 54 63 71 49 82 69
Rene Porter 100 62 88 74 98 92
;
RUN;
PROC PRINT DATA = grades;
VAR name e1 e2 e3 e4 p1 f1;
RUN;
e2에 8을 더하여 다시 e2에 넣었다.
2. 유용한 함수들
int 정수값을 돌려줌
abs 절대값
sqrt 제곱근
min 최소값
max 최대값
sum 합
mean 평균
log 자연로그
mean을 이용하여 평균을 데이터에 더하였다.
DATA grades;
INPUT name $ 1-15 e1 e2 e3 e4 p1 f1;
avg = mean(e1, e2, e3, e4);
DATALINES;
Alexander Smith 78 82 86 69 97 80
John Simon 88 72 86 . 100 85
Patricia Jones 98 92 92 99 99 93
Jack Benedict 54 63 71 49 82 69
Rene Porter 100 62 88 74 98 92
;
RUN;
PROC PRINT DATA = grades;
VAR name avg e1 e2 e3 e4 p1 f1;
RUN;
결측값이 있는 경우 4로 나누지 않고 3으로 나누어 평균을 구하였다.