我得到一个日志警告,指出 警告:21个省略观察由于缺少ID值 我正在使用此代码调换数据集:如何从SAS日志中删除警告?
PROC TRANSPOSE DATA= PT OUT= PT;
BY SOC_NM PT_NM;
ID TREATMENT;
VAR COUNT;
RUN;
我想有删除log.is此警告的任何选项可在此处获得SAS
感谢您的帮助。
我得到一个日志警告,指出 警告:21个省略观察由于缺少ID值 我正在使用此代码调换数据集:如何从SAS日志中删除警告?
PROC TRANSPOSE DATA= PT OUT= PT;
BY SOC_NM PT_NM;
ID TREATMENT;
VAR COUNT;
RUN;
我想有删除log.is此警告的任何选项可在此处获得SAS
感谢您的帮助。
你需要决定是否要继续使用TREATMENT=' '
记录或没有。如果你想保留它们,那么你需要为TREATMENT
指定一个非缺失值。如果不是,那么WHERE语句就像vasja的回答会起作用。
将添加WHERE子句为你做的工作?
PROC TRANSPOSE DATA= PT OUT= PT;
BY SOC_NM PT_NM;
ID TREATMENT;
VAR COUNT;
WHERE NOT MISSING(TREATMENT);
RUN;
无法从日志中删除警告消息。如果您确实必须保持代码不变,那么您可以使用PROC PRINTTO将日志输出临时转移到外部文件。但是,这意味着你不会在日志中看到特定步骤的任何内容,所以除非你确定自己在做什么,否则我不会推荐它。查看下面的示例代码,您将看到只有创建表a和c的步骤才会显示在日志中。
data a;
run;
proc printto log='c:\temp\temp.log';
run;
data b;
run;
proc printto;
run;
data c;
run;
之前移调,在
if TREATMENT=. then TREATMENT=99;
调换后的数据步骤中添加这种情况下,drop the variable "_99"
而且 - 这是一个非常糟糕的主意,使用相同的数据集用于输入和输出目的地。运行代码将会第一次运行,但第二次运行代码会产生完全不同的结果,因为输入数据集完全不同。 –