2013-05-30 25 views
2

是否有一個程序,將檢查一個表是否有0個觀察值,如果是的話刪除它?我認爲除了手動檢查和刪除每個表格之外,還有更簡單的方法。我正在使用循環命令,我用它生成的大多數表格都會有數據,但有幾個會有0個觀察值。SAS刪除表,如果0 Observastions

如果有人可以幫忙,謝謝。

+0

根據你在做什麼,你可能有比循環和創建空表更好的解決方案;通常BY組處理優於循環代碼。 – Joe

回答

4

假設你沒有任何理由不信任的元數據,你可以看看dictionary.tables:

proc sql; 
select memname from dictionary.tables 
    where libname='WORK' and nobs=0; 
quit; 

因此,例如,你可以拉進那宏變量並刪除表中的一個PROC SQL或PROC DATASETS語句。

proc sql; 
select memname into :dellist separated by ' ' from dictionary.tables 
    where libname='WORK' and nobs=0; 
quit; 

proc datasets nolist; 
delete &dellist; 
quit; 
+2

如果使用proc sql中的'刪除'或使用修改的數據步驟中的'刪除'刪除行,則應使用NLOBS(邏輯觀察值的數量)而不是NOBS。 – Longfish

+0

這就是我最終使用的。對不起格式。 proc sql noprint; select memname into:deletelist由'' 由dictionary.tables分隔開 其中libname ='WORK'和nobs eq 0; quit; proc datasets nolist; 刪除&deletelist; quit; – Skyler