1 / 22

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

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

tarmon
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SAS資料檔之建構&重整 指令 • SET /* 要 sort */ • MERGE /* 要 sort */ • UPDATE /* 要 sort */ • FILE/PUT • LIST • OUTPUT

  2. SAS資料檔之建構&重整(1) • 從2個資料檔讀取其部份觀測體 • 從1個資料檔的變項加入另1個資料檔內現存的變項群中 • 根據1個資料檔的資料來修正另1個資料檔的資料 • 從1個資料檔的觀測體納入另1個資料檔

  3. SAS資料檔之建構&重整(2) • 合併數個sas資料檔 • 更改現有資料檔的結構或觀測體的配置 • 建立原始的資料數據檔 • 儲存統計分析的結果

  4. 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;

  5. 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;

  6. 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;

  7. 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;

  8. 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;

  9. 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;

  10. SET 合併=(複製 1&2) • DATA both; SET c d; /*按序合併*/ PROC PRINT DATA=both; RUN;

  11. SET垂直連結=(sort後複製1&2) • DATA a;INFILE C:\data\b.dat;INPUT name $ sex $ ht wt;DATA c; SET a; IF sex=‘m’;

  12. SET垂直連結=(sort後複製1&2) • DATA d; SET a; IF sex=‘f’;

  13. 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;

  14. 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;

  15. SET 用迴路複製(2) • DATA b; DO index=2 to 5 by 2; SET a POINT=index; OUTPUT; END; STOP; • PROC PRINT DATA=b; RUN;

  16. MERGE 平行連接(1) • DATA a; INFILE C:\data\b.dat;INPUT name $ q1 q4 q5;

  17. MERGE 平行連接(2) • DATA c; INFILE C:\data\d.dat;INPUT name $ q2 q3;

  18. 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;

  19. 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;

  20. UPDATE更新主檔案(2) • DATA b; INPUT name $ wt;DATALINES; Ken 80;

  21. 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;

  22. 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;

More Related