只保留Stata中的某些行

时间:2015-04-10 14:57:41

标签: stata

我在Stata中有一个看起来像

的数据集
Id | Var1 
------------------
1  | AMD  
1  | AMM  
1  | AMM
2  | AMM
3  | AMD
3  | AMD
4  | AMM
4  | AMM

我想只保留引用至少有一个AMD的ID的行。在这个例子中,我想得到

 Id | Var1 
 ------------------
 1  | AMD  
 1  | AMM  
 1  | AMM
 3  | AMD
 3  | AMD

2 个答案:

答案 0 :(得分:0)

gen amd=(Var1=="AMD")
egen B=total(amd==1), by(Id)
keep if B

答案 1 :(得分:0)

我假设Var1只能包含AMD AMM的问题。如果是这样,那么完整的解决方案就是

bysort Id (Var1): keep if Var1[1] == "AMD" 

无需创建任何其他变量。