楼主: joyce9282
5417 5

[数据管理求助] 求助,如何用stata筛选00-14年度所有记录完整的样本 [推广有奖]

  • 0关注
  • 0粉丝

本科生

4%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
286 点
帖子
15
精华
0
在线时间
126 小时
注册时间
2013-2-19
最后登录
2021-8-9

1论坛币
捕获.PNG
我在做上市公司的问题,第一列是股票代码,想要筛选出在第二列从2000年到2014年记录完整的样本(最后筛选出来的股票都是在2000年前就上市,且记录完整).
请问如何写代码,谢谢!因为是新手菜鸟,还请多指教!

最佳答案

kuma.kobe 查看完整内容

我觉得,你的意思应该是非平衡面板数据处理成平衡面板数据把。 比如有些股票有2000-2014年的全部数据,有些企业只有这中间几年的。 你是想筛选出,那些在2000-2014的信息的股票把。 这样的话,stata有个自制的command,需要下载的,叫做xtbalance 你先 findit xtbalance 然后安装后,打开数据,设置面板 xtset id year xtbalance ,range(2000 2014) 应该是这样的
关键词:Stata tata 如何用 2000年前 请多指教 记录 样本
沙发
kuma.kobe 发表于 2015-3-13 19:25:12 |只看作者 |坛友微信交流群
我觉得,你的意思应该是非平衡面板数据处理成平衡面板数据把。
比如有些股票有2000-2014年的全部数据,有些企业只有这中间几年的。
你是想筛选出,那些在2000-2014的信息的股票把。

这样的话,stata有个自制的command,需要下载的,叫做xtbalance
你先
findit xtbalance

然后安装后,打开数据,设置面板
xtset id year
xtbalance ,range(2000 2014)

应该是这样的
已有 2 人评分经验 论坛币 学术水平 热心指数 收起 理由
爱不爱吃洋葱 + 1 + 1 有用,感谢
SpencerMeng + 100 + 20 + 1 + 1 聪明

总评分: 经验 + 100  论坛币 + 20  学术水平 + 2  热心指数 + 2   查看全部评分

使用道具

藤椅
SpencerMeng 在职认证  发表于 2015-3-16 10:43:15 |只看作者 |坛友微信交流群
楼主,您好。

想要筛选出在第二列从2000年到2014年记录完整的样本(最后筛选出来的股票都是在2000年前就上市,且记录完整).

请问您最终是保留2000-2014年的观测值吗? 2000年前上市是什么意思?

使用道具

板凳
joyce9282 发表于 2015-3-18 12:01:19 |只看作者 |坛友微信交流群
SpencerMeng 发表于 2015-3-16 10:43
楼主,您好。

想要筛选出在第二列从2000年到2014年记录完整的样本(最后筛选出来的股票都是在2000年前就上 ...
不是保留所有股票,而是仅保留那些00-14全部都有数据的股票,就是做筛选

使用道具

报纸
SpencerMeng 在职认证  发表于 2015-3-18 15:39:43 |只看作者 |坛友微信交流群
joyce9282 发表于 2015-3-18 12:01
不是保留所有股票,而是仅保留那些00-14全部都有数据的股票,就是做筛选
好的 我明白您的意思了 您是想保留2000年-2014年的观测值。

用keep语句就行了,stata就是需要多尝试,多调试,就会有意想不到的结果~~
  1. clear
  2. inp str10 year
  3. 2000-12-31
  4. 2000-06-30
  5. 2000-01-01
  6. 1999-12-31
  7. 1999-06-30
  8. 1998-12-31
  9. 1998-06-30
  10. 1997-12-31
  11. 1997-06-30
  12. 2014-03-31
  13. 2013-12-31
  14. 2013-01-01
  15. 2013-09-30
  16. 2013-06-30
  17. 2013-03-31
  18. 2012-12-31
  19. 2012-01-01
  20. end
  21. keep if year<="2000-12-31"
复制代码

使用道具

地板
austen06 发表于 2015-3-19 06:26:41 |只看作者 |坛友微信交流群
preserve
collapse (count) 第一列, by(第一列)
keep if 第一列 = 15
save index
restore
merge m:1 原来的文件 index
keep if _merge == 3


使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 16:25