일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- R
- 지리지
- 기자
- 패수
- 고구려
- 풍백
- 유주
- linear regression
- 기자조선
- 후한서
- 태그를 입력해 주세요.
- spss
- 선형회귀분석
- 독사방여기요
- 한서지리지
- ANOVA
- 히스토그램
- repeated measures ANOVA
- t test
- 단군
- categorical variable
- post hoc test
- 통계
- 통계학
- Histogram
- 창평
- 한서
- 우분투
- 신라
- 낙랑군
- Today
- Total
목록과학과 기술/SAS (27)
獨斷論
SAS 라이브러리 파일을 받아서 원하는 디렉토리에 저장한다. 일원빈도표(one-way frequency table) libname icdb 'd:\tmp'; proc freq data=icdb.back; tables sex race; run; 위 SAS 코드를 실행하면 sex와 race 두 범주형변수에 대하여 일원빈도표(일원도수표)를 만든다. tables sex와 race를 넣지 않으면 모든변수에 대하여 도수표를 만들게 된다. 범주형변수의 각 수준(level)에 대하여 빈도표를 만들려면 proc sort를 수행한 후에 proc freq 안에 by 문장을 넣어서 SAS 코드를 수행하면 된다. proc sort data=icdb.back out=s_back; by sex; run; proc freq data..
SAS 라이브러리 파일을 받아서 원하는 디렉토리에 저장한다. 아래 SAS 코드를 수행하면 기본적인 univariate의 결과들이 출력된다. libname icdb 'd:\tmp'; proc univariate data=icdb.hem2; var rbc; run; var rbc를 추가하지 않으면 모든 변수에 대해서 수행된다. normal 옵션을 추가하면 Shapiro-Wilk, Kolmogorov-Smirnov, Cramer-von Mises, and Anderson-Darling 등의 정규분포 테스트 결과를 출력한다. . libname icdb 'd:\tmp'; proc univariate data=icdb.hem2 normal; var rbc; run;
ANOVA를 수행하지 않고 데이터만 가지고 상호작용interaction plot을 그려보기로 한다. 아래 SAS데이터라이브러리 파일을 받아서 원하는 디렉토리에 저장한다. 여기서는 d:\tmp에 저장하였다. 그리고 아래 SAS 코드를 실행한다. libname icdb 'd:\tmp'; proc sort data=icdb.back out=back; by sex race; run; proc means data=back noprint; by sex race; var ed_level; output out=muEdu_dat mean=muEdLevel; run; proc plot data=muEdu_dat; plot muEdLevel * race = sex; run; 그룹변수에 대해서 proc sort를 수행하여 b..
SAS 라이브러리 파일을 내려받아 원하는 하드드라이브에 저장한다. 여기서는 d:\tmp에 저장하였다. 1. CONTENTS와 PRINT libname icdb "d:\tmp\"; proc contents data=icdb.hem2; run; proc print data=icdb.hem2 (obs=15); run; libname으로 저장된 디렉토리를 설정하고 hem2.sas7bat를 불러들이기 위해서 libname에 확장자를 제외한 SAS library 파일명을 사용한다. proc contents는 데이터의 개략적인 사항들을 보여주고 proc print는 데이터의 변수값들을 보여주는데 여기서 (obs = 15)라는 옵션을 사용하면 전체 observation 중에서 위에서 15개만 보여주게 된다. 2. PR..
출생일과 나이를 계산하고자하는 시점의 데이터가 날짜 형식일때 나이를 계산하려면 yrdiff( )를 이용한다. name은 1부터 7열까지 문자열로 읽고 birthdate는 9번째열에서 mmddyy10.의 형식으로 읽고 currentdate는 20번째 열에서 mmddyy10.의 형식으로 읽은 후 yrdiff 함수를 이용하여 나이를 계산한다. data yearage; input name $ 1-7 @9 birthdate mmddyy10. @20 currentdate mmddyy10.; age = yrdif(birthdate, currentdate, "age"); datalines; Smith 11/01/1999 02/01/2020 Thomson 05/21/1989 01/09/2005 John 01/21/195..
Data step을 실행하였는데 원하는대로 변수값이 들어가지 않았을 때에는 SAS 코드를 한줄씩 실행해 가면서 어느 변수에 코딩이 잘못되어서 원하는 값이 들어가지 않았는지 확인하는 방법이 필요하다. DATA hospitaldat; input subj 1-4 name $ 6-23 no_vis 25 expense 27-34; totalexp = no_vis * expense; DATALINES; 1024 Alice Smith 7 1001.98 1167 Maryann White 2 29O9.34 1168 Thomas Jones 10 3904.89 1201 Benedictine Arnold 1 1450.23 1302 Felicia Ho 7 1209.94 1471 John Smith 6 1763.09 1980 J..
데이터를 여러가지 방법으로 불러들이기 위해서는 data step에서 사용되는 내부변수 _N_을 잘 활용하여야만 한다. SAS에서 데이터파일을 읽어들일때에 data에서 run까지 한번만 수행하는것이 아니라 data~run을 한번 수행할때마다 데이터파일의 1번째 행을 불러들인다(이때 _N_ = 1이다). 그리고 다시 data 첫줄로 가서 run까지 다시 실행하면서 데이터파일의 2번째 행을 불러들인다( _N_ = 2). 이러한 반복과정을 데이터파일의 마지막 행까지 실행하게 된다. 이때 내부변수 _N_은 data~run을 몇번째 실행하였는지 알려주며 대개 현재읽어들이는 데이터파일의 행과 일치한다. 쉽게 예를들어보자. DATA hospitaldat; input subj 1-4 name $ 6-23 no_vis 2..
데이터의 일부 행(observation)만 프린트하려면 firstobs와 obs를 추가한다. DATA mydat; input subj 1-4 name $ 6-23 clinic $ 25-28 gender 30 no_vis 32-33 type_vis 35-37 expense 39-45; DATALINES; 1024 Alice Smith LEWN 1 7 101 1001.98 1167 Maryann White LEWN 1 2 101 2999.34 1168 Thomas Jones ALTO 2 10 190 3904.89 1201 Benedictine Arnold ALTO 2 1 190 1450.23 1302 Felicia Ho MNMC 1 7 190 1209.94 1471 John Smith MNMC 2 6 187..