오늘은 INPUT 명령문에 대해서 알아보도록 하겠습니다.
INPUT 명령문은 변수의 이름, 자료형, 자릿수 등을 지정하기 위해 사용됩니다.
CARDS 명령문은 전 포스팅에서 설명했듯이 데이터의 시작을 알리는 명령문으로 데이터가 SAS 프로그램 내에서 입력될 때 사용됩니다. RUN; 이 나올 때까지 데이터를 인식합니다.
변수가 문자형일 경우 변수명 뒤에 '$' 기호를 적어주셔야 합니다.
결측값(missing value)이 있을 경우 한 개의 마침표 '.'를 적어주셔야 합니다.
위와 같이 INPUT문을 작성했을때 데이터를 입력하려면 입력 INPUT 문에서 선언한 변수의 순서대로 데이터 사이에 하나 이상의 공백을 넣어주며 열을 구분시켜 줘야 합니다.
이런 입력 포맷을 자유 포맷(free format)이라고 합니다!
자유 포맷으로 데이터를 입력할 시 공백이 포함된 데이터를 제대로 입력받지 못하고 변수의 순서를 변경하고 싶을 때에도 일일이 데이터들의 위치를 변경해줘야 하는 번거로움이 생깁니다.
지금은 5개의 행 밖에는 없지만 나중에 몇십만 몇천만 개의 행을 일일이 변경시켜야 된다는 것은 불가능하죠...
그래서 이런 번거로움을 해결하기 위해 자유 포맷 외에도 고정 포맷, 특수 포맷이 존재합니다!
고정 포맷에 대해서 알아보겠습니다.
코드를 보시면 변수명 뒤에 숫자 범위가 추가된 것을 볼 수 있습니다.
이것은 열 지시자로 고정 포맷으로 입력된 각 변수의 시작 열과 끝 열의 위치를 지정해 주는 것입니다.
시작 열과 끝열은 데이터의 길이가 가장 큰 데이터를 기준으로 정해주시는 것이 좋습니다.
name 변수는 2행의 'David'이 가장 긴 이름으로 1번 열 부터 5번 열까지 차지하고 있어 name 변수의 열 지정자를 1-5로 지정하였습니다.
이렇게 고정 포맷을 사용할 경우 좋은 점은
1. 데이터를 공백으로 나누지 않아도 됩니다.
(1행의 데이터가 Jhon9010070 으로 입력되었다면 name $ 1-5 math 6-7 english 8-10 korean 11-13 이렇게 지정하면 된다.)
2. 입력 데이터에 공백 문자를 포함할 수 있습니다.
3. 열의 위치가 정해져 있으므로 같은 열을 반복해서 읽을 수 있고 필요 없는 열은 읽지 않을 수 있습니다.
4. 변수의 위치를 조정할 수 있다.
이렇게 INPUT 코드를 변경하면
INPUT문에 입력된 변수의 순서대로 출력되기 때문에 출력 결과는 아래와 같이 나옵니다.
다음 포스팅에 특수 포맷에 대해 올리도록 하겠습니다.
틀린 부분이 있다면 따뜻한 피드백 부탁드립니다~
'난 이 분야 전문가야! > SAS' 카테고리의 다른 글
[SAS] 파일 읽어오기 import 프로시저 사용법(엑셀 xlsx, csv, 텍스트 txt) (2) | 2020.04.30 |
---|---|
[SAS 기초 4] ,$% 특수 문자가 포함된 데이터 입력 INPUT 명령문 (특수 포맷) (0) | 2020.04.18 |
[SAS 기초 2] 데이터셋의 저장 라이브러리 LIBNAME 명령문 사용법 (1) | 2020.04.18 |
[SAS 기초 1] SAS란, SAS 프로그램의 기본 구성 (1) | 2020.04.18 |
[SAS]윈도우10 SAS University Edition 무료설치 (0) | 2020.04.18 |