푸잉이의 기술블로그
SAS 공부 본문
SAS랑 Python이랑 같이 병행해서 공부하려니 헷갈려서 그냥 SAS 만 우선 공부 하고 진행해야겠다~!
데이터 값 포맷
-> Proc print으로 출력할 때, 이쁘게 꾸며 주는 것 (실제로 저장된 값이 아닌 출력물에만 나타남)
Format 변수, 포맷형식;
포맷 형식은 무조건 .을 포함하여 변수와 구분 지어줌
ex) 113을 $113으로 출력 시켜줌 변수명 fee
-> format fee dollar.;/ 변수 fee 값 앞에 dollar로 표시해줘~
format date mmddyy8. -> 출력은 02/13/21
format dot a1 5.0 B1 comma8.2 -> 출력은 a1- 2,312 B1- 8273.21
format g10 corse dollar9.2 -> 출력은 $28223.20 (변수 여러개 가능)
포맷 형식
------------------------------------------------------------------------------
ex) comma3.2, dollar11.2, mmddyy10., date9.
외워야 할 것
mmddyy8. -> 03/11/10 mmddyy10. -> 03/11/2010
infile : 외부 파일의 위치를 선언하는 문장 (위치 조준)
input: 총으로 빵 쏨
ex)
data work.aa;
infile 'c/users/erex.cvs';
input Age height;
run;
filename으로 주소 할당-> 주소를 만약 많이 사용할거면 filename 사용하기
filename aa 'c/users/erex.cvs';
data work.bb;
infile aa;-> 폴더 안에 파일을 선택하려면 infile aa ('당근.txt')-> 리터럴 처리
input Age height;
run;
변수할당문
------------------------------------------------------------------------------------
변수를 새롭게 생성 혹은 기존 변수에서 파생하기 위해 변수할당문 사용
x1=1;
x2=2;
x3=3;
A1 = (X1+X2+X3)/3;
A2= mean(x4,c6,c3);
문자형
a4='banana';
날짜 값
d3='01jan60'd; -> 0 나옴 왜냐? 1960년 1월 1일은 0 으로 설정 되어 있으니깐
날짜 값은 'dd영어monthyy'd로 나타내야함!! 꼭!
그래서 보통 'date7d'(03jan03) 'date9d'(03jan2003)가 많음
030103으로 하면 syntatic error 뜸 절대절대 변수 할당할 땐 달을 영어로 처리하기 잊지 말기!!
사용자 포맷 설정 (proc format)
--------------------------------------------------------------------------------------------
proc format;
value apple
13 = banana
;
run;
data work.aa;
fruit = 13;
run;
proc print data =work.aa;
format fruit apple.;
run;
-> 출력창: fruit = banana
* proc format; value로 표시 하고 proc print 에서도 format 형식 표시하기