SAS条件IF-THEN语句不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAS条件IF-THEN语句不起作用相关的知识,希望对你有一定的参考价值。
我是SAS的初学者,目前,我正在学习Coursera的其中一门课程。尽管我看不到错误,但讲座中给出的代码无法正常工作。代码下方:
PROC IMPORT DATAFILE ='/home/student123/my_courses/nesarc_pds.csv' OUT = data REPLACE;
LABEL TAB12MDX ="Tobacco Dependance Past 12 Months"
CHECK321 ="Smoked Cigarettes in Past 12 Months"
S3AQ3B1 ="Usual Smoking Frequency"
S3AQ3C1 ="Usual Smoking Quantity";
IF S3AQ3B1=9 THEN S3AQ3B1=.;
IF S3AQ3C1=99 THEN S3AQ3C1=.;
IF CHECK321=1;
IF AGE LE 25;
PROC SORT; BY IDNUM;
PROC FREQ; TABLES TAB12MDX CHECK321 S3AQ3B1 S3AQ3C1 AGE;
RUN;
我在日志中看到的错误是:
80 IF S3AQ3B1=9 THEN S3AQ3B1=MISSING;
__
180
81 IF CHECK321=1;
__
180
82 IF AGE LE 25;
__
180
ERROR 180-322: Statement is not valid or it is used out of proper order.
我使用SAS Studio,但我不知道这没关系。
有人知道错误在哪里吗?
答案
您无法在茫茫荒野中运行IF语句或LABEL语句。它们必须是数据步骤的一部分(或支持这些语句的proc步骤的一部分)。您需要一个DATA步骤。 (请注意,为数据集提供比data
更有意义的名称也是一个好主意。)
PROC IMPORT DATAFILE ='/home/student123/my_courses/nesarc_pds.csv'
OUT = nesarc_pds REPLACE
;
run;
data youth;
set nesarc_pds ;
LABEL TAB12MDX ="Tobacco Dependance Past 12 Months"
CHECK321 ="Smoked Cigarettes in Past 12 Months"
S3AQ3B1 ="Usual Smoking Frequency"
S3AQ3C1 ="Usual Smoking Quantity"
;
IF S3AQ3B1=9 THEN S3AQ3B1=.;
IF S3AQ3C1=99 THEN S3AQ3C1=.;
IF CHECK321=1;
IF AGE LE 25;
run;
PROC SORT data=youth; BY IDNUM;
run;
PROC FREQ data=youth; TABLES TAB12MDX CHECK321 S3AQ3B1 S3AQ3C1 AGE;
RUN;
另一答案
- 您需要数据步骤或过程来修改数据
- 您应使用DATA =将proc指向正确的数据输入
您只需要运行一次,但它有助于描述代码。
PROC IMPORT DATAFILE ='/home/student123/my_courses/nesarc_pds.csv' OUT = data REPLACE; RUN; /*3*/ Data yourData; /*1*/ set data; LABEL TAB12MDX ="Tobacco Dependance Past 12 Months" CHECK321 ="Smoked Cigarettes in Past 12 Months" S3AQ3B1 ="Usual Smoking Frequency" S3AQ3C1 ="Usual Smoking Quantity"; IF S3AQ3B1=9 THEN S3AQ3B1=.; IF S3AQ3C1=99 THEN S3AQ3C1=.; IF CHECK321=1; IF AGE LE 25; run; /*3*/ PROC SORT data=yourData; /*2*/ BY IDNUM; RUN; /*3*/ PROC FREQ data=yourData; /*2*/ TABLES TAB12MDX CHECK321 S3AQ3B1 S3AQ3C1 AGE; RUN;
以上是关于SAS条件IF-THEN语句不起作用的主要内容,如果未能解决你的问题,请参考以下文章