SAS中的数据步骤停滞

时间:2015-11-18 17:26:54

标签: sas datastep

我是初级SAS用户,我正在尝试在198行和1611列的数据集上运行数据步骤。我不认为我在数据步骤中做了特别详细的事情,但它从未完成它。如果有人能指出我的代码中是否存在问题,我真的很感激。谢谢!

DATA merged2;
    set merged;
    Q1_rec_activity=.;
        IF (.< PA <150) THEN Q1_rec_activity=0;
        IF (. < PA >=150) THEN Q1_rec_activity=1;
    IF (PA_Q3 == 8) THEN PA_Q3=0;
    IF (PA_Q3 == 9) THEN PA_Q3=9999;
    PA_calc_activity=.;
        IF (. < PA_Q3 < 9999) and (. < PA_Q4) THEN PA_calc_activity=PA_Q4*PA_Q3;
        IF (PA_Q3==9999) THEN PA_calc_activity=9999;
    LABEL AGE='Age'
            DEM_1='Birth Year'
            DEM_2='Gender'
            DEM_3='Marial status'
            DEM_4='Hispanic/Latino'
            DEM_5='Race'
            DEM_7='Educational attainment'
            DEM_8='Employment status'
            DEM_10='Work schedule'
            DEM_11='Coworkers'
            DEM_12='Health insurance'
            DEM_14='Income'
            MODULE='Module'
            TobScreen_1='Qualtrics 1 smoke cigarettes'
            TOB_Q1='CHART tobacco module smoke cigarettes'
            TobScreen_3='Qualtrics 1 smoke cigars, cigarillos, or filtered cigars'
            TOB_Q3='CHART tobacco module smoke cigars, cigarillos, or filtered cigars'
            Exercise_Time='Qualtrics 1 minutes of moderate activity'
            PA_Q4='CHART PA module minutes of moderate activity'

    RUN;

1 个答案:

答案 0 :(得分:2)

因为您在标签声明的末尾缺少分号,SAS会将​​RUN视为标签声明的一部分。因此,它永远不会遇到步骤边界(通常是RUN,QUIT,DATA或PROC语句),因此从不实际编译和运行代码。

正如Reeza在评论中指出的那样,您的代码中也存在一些错误。 ==在SAS中不正确;单一的等号适用于平等和分配。如果您希望使用两个不同的符号,则可以使用eq进行相等(尽管在某些选项和参数上下文中仍需要使用=)。