全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1596 4
2013-02-24
情况是这样的:
假设我一个年份变量,从2000年到2010年,然后每年有3个地区编号,为A, B, C.
用 bysort 年份: tabulate 编号
可以得到非常直观的结果,就是每个地区编号在某个年份有多少次观测(observations)。

现在我想把发生数在20以下的观测值全部drop掉,请问该怎么做?比如说,在2003年,A区只有8个观测值,那么就drop掉所有2003年的A区观测。

用 bys 年份 (编号):  egen freq = count(编号) 并不能带来我想要的结果,freq的数量很大,明显和前面生成的表格不一样。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-2-24 14:26:41
试试这个,最好能上传你的数据,才容易判断。
egen tag = tag(year)

egen IDcount = total(tag), by(year)

egen IDcount1 = total(IDcount), by(year)
drop if IDcount1<20
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-2-25 00:27:18
ywh19860616 发表于 2013-2-24 14:26
试试这个,最好能上传你的数据,才容易判断。
egen tag = tag(year)
example.dta.zip
大小:(98.68 KB)

 马上下载

本附件包括:

  • example.dta


首先十分感谢您的回复!


这个似乎不太管用。这个是缩减后的数据。year是年份,tag是地区编号。
用 bys year: tabulate tag 就能看见每个地区在每个年份的有多少个次数,我想把低于20个的都去掉。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-2-25 09:44:58
看下这个可以吗?
rename tag tagnew

egen tag1 = tag(year tagnew)

egen IDcount = total(tag1), by(year tagnew)

egen IDcount1 = total(IDcount), by(year tagnew)

drop if IDcount1<20
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-2-25 13:16:51
bys 年份(编号):gen num=_N
drop if num<20
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群