仅保留变量Stata的最常见值

时间:2015-07-17 19:53:27

标签: stata

我有一个long数据集,类似于以下内容:

|patient_id |group_number|
|------------------------|
|1          |3           |
|1          |5           |
|2          |5           |
|2          |4           |
|3          |3           |

假装有更多的观察结果,以及更多独特的群组编号。我试图删除group_number在数据集中少于50次出现的所有观察。我觉得这将涉及创建一个包含超过50次的group_numbers列表(可能在numlist中),然后如果group_number不在numlist中则删除该行。但是,我的问题是创建这个numlist。

到目前为止,我已尝试使用tab获取已排序频率列表,然后使用这些值:

tab group_number, sort matcell(x) 
svmat x
list x if x > 50 & x != .

这会得到一个包含超过50次的值的频率列表。但是,如何将此列表转换为删除行,这让我感到惊讶。我是在正确的轨道上,还是有更好的方法?

当然,我可以用a,

来实现这一目标
drop if group_number == 3 | if group_number == 4 | if group_number == 5

但继续列出所有组号< 50次出现。不幸的是,这对我的数据集的大小来说不太可行。

1 个答案:

答案 0 :(得分:1)

这里的代码会丢弃观察次数少于2的组的所有观察结果。

mListOfData.add(newData);
mListViewAdapter.notifyDataSetChanged();