2017-08-28 47 views
0

我正在處理長數據;我有大約100個變量,有很多缺失值。我想遍歷變量並刪除少於「某些數字」的變量,例如32個非缺失值。使用非缺失值作爲條件刪除變量

我試過如下:

foreach var of varlist cid-lpop { 
    2. bysort `var': drop if _N < 32 
    3. } 

但它掉落了我的意見。

(這個問題在Statalist中以相同的標題交叉列出)。

+1

回答上Statalist爲好,見https://www.statalist.org/forums/forum/general-stata-discussion/general/1408083- drop-columns-using-non-missing-observations-as-criteria – 2017-08-28 13:34:26

+2

嚴格來說,它的值是或不是缺失的,而不是觀察值。如果缺少一個觀察值,許多人都會很高興,但通常情況下觀察結果可能會有一些缺失值和一些非缺失值。 –

回答

1

約瑟夫Coveney在Statalist提供以下解決方案:

foreach var of varlist cid-lpop { 
    count if !missing(`var') 
    if r(N) < 32 drop `var' 
}