如何从SAS日志中删除警告?
我收到一个日志警告 警告:由于缺少ID值,忽略了21个观察值 我使用以下代码转换数据集:如何从SAS日志中删除警告?,sas,transpose,Sas,Transpose,我收到一个日志警告 警告:由于缺少ID值,忽略了21个观察值 我使用以下代码转换数据集: PROC TRANSPOSE DATA= PT OUT= PT; BY SOC_NM PT_NM; ID TREATMENT; VAR COUNT; RUN; 我想从日志中删除此警告。SAS中是否有此警告的可用选项 谢谢您的帮助。添加WHERE子句可以帮您完成这项工作吗 PROC TRANSPOSE DATA= PT OUT= PT; BY SOC_NM PT_NM;
PROC TRANSPOSE DATA= PT OUT= PT;
BY SOC_NM PT_NM;
ID TREATMENT;
VAR COUNT;
RUN;
我想从日志中删除此警告。SAS中是否有此警告的可用选项
谢谢您的帮助。添加WHERE子句可以帮您完成这项工作吗
PROC TRANSPOSE DATA= PT OUT= PT;
BY SOC_NM PT_NM;
ID TREATMENT;
VAR COUNT;
WHERE NOT MISSING(TREATMENT);
RUN;
添加WHERE子句对您有用吗
PROC TRANSPOSE DATA= PT OUT= PT;
BY SOC_NM PT_NM;
ID TREATMENT;
VAR COUNT;
WHERE NOT MISSING(TREATMENT);
RUN;
您需要决定是否保留
TREATMENT=''
记录。如果要保留它们,则需要为TREATMENT
指定一个非缺失值。如果没有,那么像vasja的答案这样的WHERE语句将起作用。您需要决定是否保留治疗=''
记录。如果要保留它们,则需要为TREATMENT
指定一个非缺失值。如果没有,那么WHERE语句(如vasja的答案)将起作用。没有从日志中删除警告消息的选项。如果确实必须保持代码不变,则可以使用PROC PRINTTO将日志输出临时转移到外部文件。但是,这意味着您不会在日志中看到该特定步骤的任何内容,因此,除非您非常确定自己正在做什么,否则我不会推荐使用该步骤。查看下面的示例代码,您将看到日志中只显示创建表a和表c的步骤
data a;
run;
proc printto log='c:\temp\temp.log';
run;
data b;
run;
proc printto;
run;
data c;
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;
在转置之后,
删除变量“_99”
在转置之前,在数据步骤中添加此条件
if TREATMENT=. then TREATMENT=99;
在转置之后,
也删除变量“_99”
——对输入和输出目标使用相同的数据集是一个非常糟糕的主意。第一次运行代码会起作用,但第二次运行代码会产生完全不同的结果,因为输入数据集是完全不同的。此外,对输入和输出目标使用相同的数据集是一个非常糟糕的主意。第一次运行代码会起作用,但是第二次运行代码会产生完全不同的结果,因为输入数据集是完全不同的。