如何从SAS日志中删除警告?

时间:2013-07-01 06:44:05

标签: sas transpose

我收到日志警告说明 警告:由于缺少ID值,因此省略了21个观察值 我正在使用以下代码转置数据集:

PROC TRANSPOSE DATA= PT OUT= PT;
    BY SOC_NM PT_NM;
    ID TREATMENT;
    VAR COUNT;
RUN;

我想从log中删除此警告。此处有任何SAS可用选项

谢谢你的帮助。

4 个答案:

答案 0 :(得分:2)

添加WHERE子句会为你完成这项工作吗?

PROC TRANSPOSE DATA= PT OUT= PT;
    BY SOC_NM PT_NM;
    ID TREATMENT;
    VAR COUNT;
    WHERE NOT MISSING(TREATMENT);
RUN;

答案 1 :(得分:2)

您需要决定是否保留TREATMENT=' '记录。如果您想保留它们,则需要为TREATMENT指定一个非缺失值。如果没有,那么像vasja的回答这样的WHERE语句就可以了。

答案 2 :(得分:0)

没有选项可以从日志中删除警告消息。如果您确实必须按原样保留代码,则可以使用PROC PRINTTO暂时将日志输出转移到外部文件。但是,这意味着您不会在日志中看到该特定步骤的任何内容,因此除非您非常确定自己在做什么,否则我不建议这样做。查看下面的示例代码,您将看到只有创建表a和c的步骤显示在日志中。

data a;
run;

proc printto log='c:\temp\temp.log';
run;
data b;
run;
proc printto;
run;

data c;
run;

答案 3 :(得分:0)

在转置之前,请在数据步骤中添加此条件

if TREATMENT=. then TREATMENT=99;
转置后{p> drop the variable "_99"