2014-10-09 226 views
0

我有一個名爲BRFSS數據上AGESEX大數據集的計算在SAS變量,被申請人是否有過乳房X光檢查(HADMAM),和它一直以來他們的乳房X光檢查的時間(HOWLONG )。我想創建一個名爲_MAM502Y一個新的計算變量是由該SAS代碼中定義:創建從其他變量

IF SEX=2 AND AGE GE 50 THEN DO; 
IF HADMAM=1 THEN DO; 
     IF HOWLONG IN (1,2) THEN _MAM502Y=1; 
    ELSE IF HOWLONG IN (3,4,5) THEN _MAM502Y=2; 
    ELSE IF HOWLONG IN (7,9) THEN _MAM502Y=9; 
    END; 
ELSE IF HADMAM=2 THEN _MAM502Y=2; 
ELSE IF HADMAM IN (7,9,.) THEN _MAM502Y=9; 
END; 
ELSE IF SEX=2 AND AGE IN (.,7,9) THEN _MAM502Y=9; 
ELSE _MAM502Y=.; 

我有很多的,使用R進行數據操作的經驗,但我需要建立在SAS這個變量。有人能告訴我如何在SAS中使用此代碼來創建新變量嗎?謝謝!

回答

1

假設您在SAS庫LIB1中有一個表TABLE1。

爲了使新變量的原始表的永久組成部分做到這一點(重寫源表):

data LIB1.TABLE1; 
    set LIB1.TABLE1; 
    ... your code.. 
run; 

要創建源表+新領域的新副本。只需將上面的data LIB1.TABLE1;更改爲例如要創建類似於原始數據+新計算字段(未存儲)的東西,請創建一個像這樣的SAS datastep視圖(這只是定義了計算(程序),沒有數據被寫入,所以很快就完成了播放):

data LIB1.VIEW1/view = LIB1.VIEW1; 
    set LIB1.TABLE1; 
    ... your code.. 
run; 
+0

我得到這個錯誤,當我試試你的第一個選項:「錯誤:無法打開TMP1.CDBRFS04.DATA與會員級別控制輸出訪問,因爲 TMP1.CDBRFS04.DATA是你在資源環境DATASTEP中使用「 – vokey588 2014-10-10 16:55:33

+0

難道你是在對這張表執行一些其他的數據步驟嗎?TMP1 - 你是否通過在Windows資源管理器中雙擊SAS表打開這個庫: - ) – vasja 2014-10-10 18:03:07

+0

是的,你是對的,我是雙擊數據集。一旦我將其作爲永久性數據集打開,代碼就可以工作! – vokey588 2014-10-14 13:37:09