-----------------------------------------------------------------------------------------------------------------------接續

 

 

五、超級變變變(資料轉換)

 

  有時候資料需作一些轉換,像是重新分組、反向計分、資料合併、刪除變數或資料等等,此時有一些語法就可以派上用場。

 

1.運算元

 

 

2.IF………….THEN(根據某條件做一件事)

IF指令常用於資料合併的時候,範例如下,如果age小於20age_g等於1,如果age介於20~40間,age_g等於2,其他的ageage_g等於3

 

IF age < 20 ThEN age_g = 1;

IF 20<< span>40 THEN age_g = 2;

ELSE IF =3;

RUN;

 

 

3.IF .THEN DO; END;(根據某條件做很多事)像是設定虛擬變數

 

 

 

IF Edu=1 THEN DO ; D1 = 0; D2 = 0 ; D3 = 0; END;

IF Edu=2 THEN DO ; D1 = 1; D2 = 0 ; D3 = 0; END;

IF Edu=3 THEN DO ; D1 = 0; D2 = 1 ; D3 = 0; END;

IF Edu=4 THEN DO ; D1 = 0; D2 = 0 ; D3 = 1; END;

RUN;

 

 

 

 

4.IF THEN ; ELSE IF THEN; ELSE(排除前一個條件後,根據下一個條件做一件事)

 

 

 

IF age=1  THEN age_g=1;

ELSE IF age=2 or age=3 THEN age_g=2;

ELSE  age_g=3;

RUN;

 

 

 

六、它的去留由你決定(資料變更的語)

(1)DROP var(宣告欲排除此變數,表示DEMO2不會有age這個變項)

 

 

DATA DEMO2 ;

  SET DEMO ;

  DROP = age

RUN;

 

 (給我一堂統計課吧)

 

(2)KEEP var(宣告欲保留此變數,表示DEMO2只會有age這個變項)

 

 

DATA DEMO2 ;

  SET DEMO ;

  DROP = age

RUN;

 

 

 

(3)DELETE(宣告在某一條件下,將資料刪除)

 

 

DATA DEMO2 ;

  SET DEMO ;

  IF age = 2 THEN DELETE;

RUN;

 

 

 

 

七、合體I(SET資料變數縱向合併)

SET用於創造一個一模一樣的資料集,使你在做資料轉換時不會將原資料覆蓋,範例如下,在範例中是指要建立一個資料集DEMO2,而這個DEMO2是由DEMO複製過來的,而且可加上資料變更的語法,建立自己所需要的資料集。

 

 

DATA DEMO2 ;

  SET DEMO ;

  KEEP ID age;

RUN;

 

 

另外SET可用來合併多筆資料集

 

 

DATA DEMO3 ;

  SET DEMO1 DEMO2 ;

RUN;

 

 

 

八、合體II(MERGE資料受試者橫向合併)

以下範例是指資料集(CASE3)藉由著變項ID,連結CAES1CASE2資料集。

 

 

DATA CASE3 ;

  MERGE CASE1 CASE2 ;

  BY ID ;

PROC PRINT ;

RUN ;

 

 

 

 

九、像秀髮一樣柔順(資料排序SORT

資料集DEMO依性別作排序

 

 

 

DATA DEMO ;

  INPUT sex  WEIGHT ;

CARDS ;

1 68

2 61

2 63

1 68

1 69

2 65

1 72

;

PROC SORT DATA=DEMO ;

  BY sex ;

PROC PRINT DATA=DEMO;

RUN ;

 

 

 

十、廬山真面目(資料列印)

完成資料處裡後,我們通常都會想看資料整理的如何,因此需要利用此語法,將資料集列印在OUTPUT

 

 

 

PRINT的選擇項:【DATA=】宣告要印出的資料集

               ROUND】宣告取整數值

               NOOBS】宣告觀察體號碼不印出

               UNIFORM】宣告所有頁面均以同一格式印出

 

PRINT的關鍵字:【VAR】宣告要印出的變項

               BY】宣告以特定變數分開列印

 

 

DATA CASE;

 INFILE 'C:\D001.txt' missover;

 INPUT ID $ 1-4 Gend 5 age 6-7 Mar 8 Height 9-14 .1;

 MISSING 999;

PROC PRINT DATA=CASE ROUND NOOBS UNIFORM;

TITLE '我是標題' ;

VAR ID age;

BY ID;

RUN;

 

arrow
arrow
    全站熱搜

    晨晰部落格新站 發表在 痞客邦 留言(0) 人氣()