我得到一個日誌警告,指出 警告: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"
而且 - 這是一個非常糟糕的主意,使用相同的數據集用於輸入和輸出目的地。運行代碼將會第一次運行,但第二次運行代碼會產生完全不同的結果,因爲輸入數據集完全不同。 –