根据 Stata 中的缺失计数删除 columns/variables

Dropping columns/variables based on count of missing in Stata

我有一个大型数据集,如下所示。我想删除行中观察值少于 3 个的变量(不是 observations/rows)。在这种情况下,只需要删除变量 X1

如果我问的是一些显而易见的问题,我深表歉意,但是,此时我不知道如何继续这个问题。

+-----+-----+-----+-----+-----+
| ID  |  X1 | X2  | X3  | X4  |
+-----+-----+-----+-----+-----+
|  1  |  .  |  1  |  1  |  2  |    
|  2  |  .  |  2  |  2  |  3  |    
|  3  |  .  |  3  |  1  |  .  |   
|  4  |  1  |  .  |  3  |  1  |   
|  5  |  .  |  2  |  4  |  3  |   
|  6  |  2  |  3  |  .  |  .  |    
|total|  2  |  5  |  5  |  4  |   
+-----+-----+-----+-----+-----+

我的解释是您想删除至少有 3 个缺失值的变量。

您可以使用 nmissing,来自 SSC (ssc install nmissing):

clear
set more off

input ///
x y z
. . 5
. 6 8
4 . 9
. . 1
5 . .
end

list

nmissing, min(3)
drop `r(varlist)'

如果我的解释不正确,请检查 help 中的 nmissingnpresent。语法足够灵活。

编辑

重新解读。您想要删除不具有至少 3 个非缺失值的变量:

clear
set more off

input ///
ID    X1  X2   X3   X4  
1    .    1    1    2      
2    .    2    2    3      
3    .    3    1    .     
4    1    .    3    1     
5    .    2    4    3     
6    2    3    .    .   
end

list, sep(0)

npresent, min(3)
keep `r(varlist)'

describe