sas 資料檔之建構&重整 指令

22
SAS 資資資資資資 & 資資 資資 SET /* 資 sort */ MERGE /* 資 sort */ UPDATE /* 資 sort */ FILE/PUT LIST OUTPUT

Upload: tarmon

Post on 06-Jan-2016

28 views

Category:

Documents


1 download

DESCRIPTION

SAS 資料檔之建構&重整 指令. SET /* 要 sort */ MERGE /* 要 sort */ UPDATE /* 要 sort */ FILE/PUT LIST OUTPUT. SAS 資料檔之建構&重整(1). 從2個資料檔 讀取其部份 觀測體 從1個資料檔的變項 加入 另1個資料檔內現存的變項群中 根據1個資料檔的資料來 修正 另1個資料檔的資料 從1個資料檔的觀測體 納入 另1個資料檔. SAS 資料檔之建構&重整(2). 合併 數個 sas 資料檔 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SAS 資料檔之建構&重整  指令

SAS 資料檔之建構 & 重整 指令

SET /* 要 sort */MERGE /* 要 sort */UPDATE /* 要 sort */ FILE/PUTLISTOUTPUT

Page 2: SAS 資料檔之建構&重整  指令

SAS 資料檔之建構 & 重整 (1)

從 2 個資料檔讀取其部份觀測體從 1 個資料檔的變項加入另 1 個資料檔內現存的變項群中根據 1 個資料檔的資料來修正另 1 個資料檔的資料從 1 個資料檔的觀測體納入另 1 個資料檔

Page 3: SAS 資料檔之建構&重整  指令

SAS 資料檔之建構 & 重整 (2)

合併數個 sas 資料檔更改現有資料檔的結構或觀測體的配置建立原始的資料數據檔儲存統計分析的結果

Page 4: SAS 資料檔之建構&重整  指令

OUTPUT 由 1 筆記錄產生數個觀測體

DATA Q; INPUT name $ quiz1 quiz2 quiz3; quiz=1; score=quiz1; output; quiz=2; score=quiz2; output; quiz=3; score=quiz3; output; DROP quiz1-quiz3;

DATALINES;A 75 85 95B 60 70 90C 59 69 79;

Page 5: SAS 資料檔之建構&重整  指令

OUTPUT 由 1 筆記錄產生數個資料檔

DATA coll hisch; INPUT name $ educ; if educ >12 then OUTPUT collage; if educ <=12 then OUTPUT hischool;

DATALINES;A 16B 9C 6D 10;

Page 6: SAS 資料檔之建構&重整  指令

FILE 建立外部數據檔

DATA A; INFILE ‘C:\data\b.dat’; INPUT name $ quiz1 quiz2 quiz3; avg=MEAN(OF quiz1-quiz3);

FILE ‘C:\data\c.dat’;/* 建立外部檔案 */PUT name $ 10. @ 12 avg 4.; /* 請用 formatted input*/RUN;

Page 7: SAS 資料檔之建構&重整  指令

LIST 在 LOG 看觀測體

DATA A; INFILE ‘C:\data\b.dat’; INPUT name $ quiz1 quiz2 quiz3; avg=MEAN(OF quiz1-quiz3);

IF avg< 60 THEN DO; LIST; delete; END;

Page 8: SAS 資料檔之建構&重整  指令

SET 複製 (1)

DATA a;INFILE C:\data\b.dat;INPUT name $ sex $ ht wt;

DATA c; SET a; IF sex=‘m’;

PROC PRINT DATA=c; RUN;

Page 9: SAS 資料檔之建構&重整  指令

SET 複製 (2)

DATA a;INFILE C:\data\b.dat;INPUT name $ sex $ ht wt;

DATA d; SET a; IF sex=‘f’;

PROC PRINT DATA=d; RUN;

Page 10: SAS 資料檔之建構&重整  指令

SET 合併 =( 複製 1&2)

DATA both; SET c d; /* 按序合併 */ PROC PRINT DATA=both; RUN;

Page 11: SAS 資料檔之建構&重整  指令

SET 垂直連結 =(sort 後複製 1&2)

DATA a;INFILE C:\data\b.dat;INPUT name $ sex $ ht wt;

DATA c; SET a; IF sex=‘m’;

Page 12: SAS 資料檔之建構&重整  指令

SET 垂直連結 =(sort 後複製 1&2)

DATA d; SET a; IF sex=‘f’;

Page 13: SAS 資料檔之建構&重整  指令

SET 垂直連結 =(sort 後複製 1&2)

PROC SORT DATA=c; by name ; RUN;PROC SORT DATA=d; by name ; RUN;

DATA bothsort; SET c d ; BY name ;

PROC PRINT DATA=bothsort; RUN;

Page 14: SAS 資料檔之建構&重整  指令

SET 用迴路複製 (1)

DATA a; INPUT name $ sex $ ht wt;DATALINES;Fly m 167 68Jima f 146 50Ken m 171 .Anna f 156 61Green f 159 57;

Page 15: SAS 資料檔之建構&重整  指令

SET 用迴路複製 (2)

DATA b; DO index=2 to 5 by 2; SET a POINT=index; OUTPUT;

END; STOP;

PROC PRINT DATA=b; RUN;

Page 16: SAS 資料檔之建構&重整  指令

MERGE 平行連接 (1)

DATA a; INFILE C:\data\b.dat;INPUT name $ q1 q4 q5;

Page 17: SAS 資料檔之建構&重整  指令

MERGE 平行連接 (2)

DATA c; INFILE C:\data\d.dat;INPUT name $ q2 q3;

Page 18: SAS 資料檔之建構&重整  指令

MERGE 平行連接

PROC SORT DATA=a; BY name; RUN; PROC SORT DATA=c; BY name; RUN; DATA new; MERGE a(IN=x) c(IN=y);

IF x AND y; BY name;

PROC PRINT DATA=new; RUN;

Page 19: SAS 資料檔之建構&重整  指令

UPDATE 更新主檔案 (1)DATA a; INPUT name $ sex $ ht wt;DATALINES;Fly m 167 68Jima f 146 50Ken m 171 .Anna f 156 61Green f 159 57;

Page 20: SAS 資料檔之建構&重整  指令

UPDATE 更新主檔案 (2)

DATA b; INPUT name $ wt;DATALINES; Ken 80;

Page 21: SAS 資料檔之建構&重整  指令

UPDATE 更新主檔案 (3)

PROC SORT DATA=a; BY name; RUN;DATA current;

UPDATE a b(IN=r);IF r; BY name;PROC PRINT DATA=current; RUN;

Page 22: SAS 資料檔之建構&重整  指令

UPDATE 更新主檔案 (3’)

PROC SORT DATA=a; BY name; RUN; PROC SORT DATA=b; BY name; RUN; DATA current; UPDATE a b;

BY name;PROC PRINT DATA=current; RUN;