sas 資料檔之建構&重整 指令
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 PresentationTRANSCRIPT
SAS 資料檔之建構 & 重整 指令
SET /* 要 sort */MERGE /* 要 sort */UPDATE /* 要 sort */ FILE/PUTLISTOUTPUT
SAS 資料檔之建構 & 重整 (1)
從 2 個資料檔讀取其部份觀測體從 1 個資料檔的變項加入另 1 個資料檔內現存的變項群中根據 1 個資料檔的資料來修正另 1 個資料檔的資料從 1 個資料檔的觀測體納入另 1 個資料檔
SAS 資料檔之建構 & 重整 (2)
合併數個 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;
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;
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;
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;
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;
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;
SET 合併 =( 複製 1&2)
DATA both; SET c d; /* 按序合併 */ PROC PRINT DATA=both; RUN;
SET 垂直連結 =(sort 後複製 1&2)
DATA a;INFILE C:\data\b.dat;INPUT name $ sex $ ht wt;
DATA c; SET a; IF sex=‘m’;
SET 垂直連結 =(sort 後複製 1&2)
DATA d; SET a; IF sex=‘f’;
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;
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;
SET 用迴路複製 (2)
DATA b; DO index=2 to 5 by 2; SET a POINT=index; OUTPUT;
END; STOP;
PROC PRINT DATA=b; RUN;
MERGE 平行連接 (1)
DATA a; INFILE C:\data\b.dat;INPUT name $ q1 q4 q5;
MERGE 平行連接 (2)
DATA c; INFILE C:\data\d.dat;INPUT name $ q2 q3;
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;
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;
UPDATE 更新主檔案 (2)
DATA b; INPUT name $ wt;DATALINES; Ken 80;
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;
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;