1. dataset 생성
1) CARDS
1> 용도: data가 많지 않은 경우 사용
2> 구현: 직접 프로그램 내부에 입력
3> 구체적 구현: CARDS 뒤에 data를 입력하고 -> ;(semi-colon)으로 입력 data의 마지막을 나타낸다.
2) INFILE (외부파일을 읽어 들이는 방법)
DATA A;
INFILE 'G:\sas data file\a1.txt';
INPUT class ID Name$ gender $ Major $ Age Rigion $;
run;
1> 외부에서 작성된 아스키 파일이나 txt 파일 형태로 저장된 파일을 읽어들인다.
2> 주의: 경로 설정을 정확하게 해야 한다.
2. dataset 및 변수의 제어
1) INPUT문
: SAS 파일 구성 시 자료들의 속성을 변수로 지정하기 위해 사용
2) SET 구문의 활용 (2가지 용법)
1> dataset 이름 변경 및 갱신
: 이미 만들어진 dataset의 이름을 바꾸어 다른 추가적인 처리를 할 경우 사용
ex>
DATA new-dataset-name;
SET old-dataset-name;
cf> 예제
- 'DATA TIRE2;' : 미리 만들어놓고 할당해야 하기 때문에 이름이 겹치지 않는 DATA 변수 만들어 놓는다.
- 'SET TIRE;' : TIRE를 그대로 가져온다.
- IF TIRE > 50 then class=1; : 그래서 class라는 숫자 변수를 추가한다.
cf> F4 단축키는 바로 이전에 실행한 것을 다시 불러올 수 있다.
2> dataset 세로 결합
ex>
DATA new-dataset-name;
SET dataset-name1 dataset-name2 dataset-name3 ...;
cf> 예제
- 'INPUT A1-A3' : A1, A2, A3 3개의 변수를 만든다. ('-' : 해당 변수 사이에서 변수를 연속된 개수만큼 받는다.)
- 'SET SET1 SET2' : SET1과 SET2를 세로방향으로 병합한다.
- 'PROC PRINT' : 맨 마지막에 선언된 dataset을 출력
- 세로 병합 시 각 dataset이 보유한 변수가 서로 다르거나 없으면 비워둔다. (결측치로 처리한다.)
cf> 앞으로 2가지 병합이 나온다.
- 세로 병합 (중복된 변수의 값을 가질 일이 없다.)
- 가로 병합 (중복된 변수에서 다른 값을 가질 수 있다.)
3) 데이터의 가로 병합 - MERGE
ex> DATA new-dataset-name;
MERGE dataset-name1 dataset-name2 dataset-name3 ...;
1> 경우의 수
- 중복된 변수에서 동일한 값을 가진다. -> 문제 없이 동일한 값으로 합쳐진다.
- 중복된 변수에서 다른 값을 가진다. -> 어떤 기준에 따라 하나의 값으로 대체해야한다.
(전자는 쉬우니 아래에는 후자 위주로 다룬다.)
2> BY에 대한 이해
'BY col1'
- col은 놔두라는 의미
- col1 변수가 다른 값을 가지면 다른 것이다. -> 그래서 다른 개수 만큼의 data를 가진다.
3> BY 유무에 따른 차이
전제 | 중복변수 처리 | 대치된 data 처리 | ||
BY X | X |
가장 뒤의 dataset으로 대치 |
-> | 다른 data의 변수 값은 삭제 |
BY O | 정렬되어 있어야한다. |
'BY'에 해당하는 dataset으로 대치 |
-> | 다른 data의 변수는 바로 밑으로 이동 |
- BY에 해당하는 dataset이 정렬되어 있지 않다면 PROC SORT로 정렬해야 한다.
4> 예제
- A1은 (1, 4)와 (1, 7)로 정렬되어 있다. -> BY 구문에 A1을 사용할 수 있다.
- 'by a1' : 'a1은 그대로 둬라'라는 의미 -> a1이 가지는 값은 1, 4, 7 이어서 3개의 raw를 가진다.
5> BY 예제
BY A1
- BY A1 : 'A1은 그대로 둬라'라는 의미 -> A1이 가지는 값은 1, 4, 7 이어서 3개의 raw를 가진다.
4) 변수의 이름을 변경하기 - RENAME
1> 'RENAME old-name-1=new-name-1' : old-name-1 -> new-name-1으로 변경한다.
(순서 : old = new)
2> 예제
5) 기존 변수들로 새로운 변수 만들기
1> 기존 변수들로 새로운 변수를 만들기 때문에
2> DATA 명령어 내부(dataset 내부)에서 새로운 변수를 만든다.
3> '새로운 변수 = 기존 변수들을 이용한 연산' 꼴로 dataset 내부에 넣으면 된다.
6) 변수의 삭제, 유지 - DROP, KEEP
0> 각각을 사용하는 경우
- DROP과 KEEP은 서로 반대 성향이며
- 유지할 것이 많으면 DROP
- 삭제할 것이 많으면 KEEP
1> DROP : 지정된 변수를 데이터 셋에서 삭제
2> KEEP : 지정된 변수를 제외한 모든 변수를 데이터 셋에서 삭제하는 기능
3> 예제
- 'SUM = A1+A2+A3' : SUM이라는 새로운 변수를 만든다.
7) 관찰지의 삭제 - DELETE
그동안은 변수에 대해 적용되었다. 이번에는 변수가 아니라 관찰지에 적용한다.
1> 특정 조건에 맞는 관찰지를 SAS dataset에서 제거하고자 할 때 사용
2> 보통 if와 함께 쓰이는 경우가 많다.
3> 예제
8) 앞의 record를 가져올 때 - RETAIN
0> SAS에서는 record 단위로 data를 읽고 처리하기 때문에 앞의 record에서 계산된 결과를 다음 record에서 쓸 수 없다. (덮어 쓰는 문제)
1> 초기치를 지정하는 것과 유사
2> 누적치를 구할 때 유용
3> 예제
'SAS' 카테고리의 다른 글
[통계 개념] 4강 - 여러가지 확률 분포 (0) | 2020.04.16 |
---|---|
3-2강 - SAS data 단계 (변수의 외부 파일 출력, SAS dataset 출력, 설명 부여, SAS 연산자 및 함수) (FILE & PUT, OUTPUT, LABEL) (0) | 2020.04.08 |
[통계 개념] 2강 - Data의 요약 및 표현 (0) | 2020.03.21 |
1-3강 - SAS 실습 (0) | 2020.03.17 |
1-2강 - SAS 기본 문법 (0) | 2020.03.17 |