일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- post hoc test
- R
- 유주
- 태그를 입력해 주세요.
- 고구려
- 한서지리지
- 독사방여기요
- 후한서
- 히스토그램
- 단군
- 우분투
- 한서
- linear regression
- 창평
- t test
- 통계학
- repeated measures ANOVA
- Histogram
- 신라
- 패수
- 풍백
- 지리지
- spss
- 통계
- 기자
- ANOVA
- categorical variable
- 기자조선
- 선형회귀분석
- 낙랑군
- Today
- Total
獨斷論
SAS 문법 - 2 데이터 불러오기 본문
SAS로 데이터를 불어들일때 데이터 파일을 읽어들이는 방법과 SAS 코드 안에 직접 입력하는 방법이 있다.
1. SAS 코드에 데이터 입력
일단 아래 코드를 입력하고 실행한다.
DATA mydata;
INPUT subj 1-4 gender 6 height 8-9 weight 11-13;
DATALINES;
1024 1 65 125
1167 1 68 140
1168 2 68 190
1201 2 72 190
1302 1 63 115
;
RUN;
PROC PRINT data=mydata;
TITLE 'Output dataset: mydata';
RUN;
첫째줄: DATA mydat는 mydata라는 이름의 데이터를 만들겠다는 뜻이고
둘째줄: INPUT 키워드 뒤로 데이터에 들어가는 변수명이 주어졌는데 여기서는 subj, gender, height, weight라는 변수가 만들어진다. 그리고 변수명 뒤로 숫자는 데이터가 존재하는 열의 위치를 나타내는데 subj 1-4는 subj라는 변수가 값은 1번째 열에서 4번째 열까지 존재한다는 뜻이며 gender 6은 6번째 열만 gender의 값이라는 뜻이다.
세째줄: DATALINES 다음으로 데이터를 입력하게 된다. subj 1-4로 지정하였으므로 1에서 4번째 열까지 값인 1024, 1167 등등이 subj의 값이 되고 gender 6으로 지정하였으므로 6번째 열의 값인 1, 1, 2, 2, 등의 값이 gender의 값이 된다. 데이터를 다 입력하고 난 뒤에는 꼭 "줄을 하나 바꾸고" 세미콜론으로 구분하여야 한다.
DATA step은 실행하기 위하여 마지막에 RUN을 입력한다.
만약 character 변수가 존재한다면 변수명 뒤에 공백을 하나 넣고 달러( $ )를 입력한다. 예를들어 subj의 값들이 숫자가 아니라 아래처럼 문자가 포함되어 있다면
DATA mydata;
INPUT subj $ 1-5 gender 7 height 9-10 weight 12-14;
DATALINES;
S1024 1 65 125
S1167 1 68 140
S1168 2 68 190
S1201 2 72 190
S1302 1 63 115
;
RUN;
PROC PRINT data=mydata;
TITLE 'Output dataset: mydata';
RUN;
subj 뒤에 공백을 하나 넣고 $를 입력한 뒤에 변수값이 존재하는 열의 위치를 지정한다. subj의 값이 1024에서 S1024가 되었으므로 1-4가 아니라 1-5이고 gender도 6에서 7로 바뀌었다.
2. SAS에서 데이터파일 불러오기
아래와 같은 텍스트파일을 만들고 각자 원하는 디렉토리에 저장한다.
1024 1 65 125
1167 1 68 140
1168 2 68 190
1201 2 72 190
1302 1 63 115
만들기 귀찮으면 이걸 내려받는다.
이제 이 mydata.txt 파일의 데이터를 SAS로 불러들이면
data WgtHgt;
infile "d:\tmp\mydata.txt";
input subj 1-4 gender 6 height 8-9 weight 11-13;
run;
proc print data = WgtHgt;
run;
두번째 줄에서 파일이 있는 위치를 infile 로 알려주고 input에서 데이터 위치와 변수명을 알려준다.
3. CSV 파일 불러오기
만약 데이터파일이 쉼표로 분리된 csv파일이라면
1024,1,65,125
1167,1,68,140
1168,2,68,190
1201,2,72,190
1302,1,63,115
파일:
infile에 delimiter 옵션을 추가한다.
데이터의 각 열을 구분할 필요가 없으므로 input에서는 변수명만 입력하면 된다.
data WgtHgt1;
infile "d:\tmp\mydata.csv" delimiter=",";
input subj gender height weight;
run;
proc print data = WgtHgt1;
run;
데이터파일 첫줄에 변수명이 입력되어 있다면 2번째줄부터 읽도록 옵션을 추가한다.
subj,gender,height,weight
1024,1,65,125
1167,1,68,140
1168,2,68,190
1201,2,72,190
1302,1,63,115
파일:
infile의 옵션으로 firstobs = 2를 추가하여 2번째줄부터 읽도록 하였다.
data WgtHgt2;
infile "d:\tmp\mydataobs.csv" delimiter="," firstobs=2;
input subj gender height weight;
run;
proc print data = WgtHgt2;
run;