我收到日志警告说明 警告:由于缺少ID值,因此省略了21个观察值 我正在使用以下代码转置数据集:
PROC TRANSPOSE DATA= PT OUT= PT;
BY SOC_NM PT_NM;
ID TREATMENT;
VAR COUNT;
RUN;
我想从log中删除此警告。此处有任何SAS可用选项
谢谢你的帮助。
答案 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"