2014-10-09 224 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