楼主: ___Xmmy
1523 3

[面板数据求助] stata代码等距扩充成企业-年份-行业(id-year-ind)的面板数据 [推广有奖]

  • 5关注
  • 0粉丝

已卖:27份资源

硕士生

70%

还不是VIP/贵宾

-

威望
0
论坛币
643 个
通用积分
0.0866
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
253 点
帖子
26
精华
0
在线时间
365 小时
注册时间
2012-9-12
最后登录
2025-12-18

楼主
___Xmmy 发表于 2023-9-14 00:14:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
CSMAR数据库-上市公司基本信息年度表-有企业-年度-行业的面板数据,但是数据起始时间是2000-2022,刚好我研究的数据是1991年开始的,需要手动填充1991-1999年的企业代码。CNRDS数据库有id-industry的企业-行业面板数据,但是是不准确的,因为同一家企业由于经营时间的变动,可能会更换主营业务导致改变了其行业类型,因此我下面的面板数据就是很严谨和准确的,但是需要按照年份等距填充一下,代码我能不够向各位老师求助。
于是下载了如下的企业(id)-实施开始年份(year1)-行业代码(industrycode)-行业名称(industryname)的数据如下。想要达到的效果是:
(1)形成一个id-year-year1-industrycode-industryname的面板数据,id=1的企业从year=1991,1992,1993……一直到2022年,多了一列year(1991-2022)的变量;
(2)拿id=4的企业来说,它分别在1991,2010,2020三个年份更换企业4的行业代码,那么year从1991-2009,2010-2020,2021-2022这几段年度区间企业4的行业代码-行业名称(industrycode-industryname)就应该分别为G54,C27,I65。具体企业4的填充后的效果如第二张图片;
(3)还有一个问题是,有的企业id它同一年份会有两个不同的行业代码-行业名称(industrycode-industryname),此时取最先出现的那个行业(这个小误差无法避免)。

----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. For more info, type help dataex
  2. clear
  3. input long id float year1 str12 industrycode str60 industryname
  4. 1 1991 "J66" "货币金融服务"                                          
  5. 2 1991 "K70" "房地产业"                                                
  6. 3 1991 "S90" "综合"                                                      
  7. 4 1991 "G54" "道路运输业"                                             
  8. 4 2010 "C27" "医药制造业"                                             
  9. 4 2020 "I65" "软件和信息技术服务业"                              
  10. 5 1990 "S90" "综合"                                                      
  11. 5 2012 "K70" "房地产业"                                                
  12. 5 2016 "N77" "生态保护和环境治理业"                              
  13. 6 1992 "K70" "房地产业"                                                
  14. 7 1992 "K70" "房地产业"                                                
  15. 7 2010 "H61" "住宿业"                                                   
  16. 7 2017 "K70" "房地产业"                                                
  17. 8 1992 "I64" "互联网和相关服务"                                    
  18. 8 2010 "F51" "批发业"                                                   
  19. 8 2012 "H61" "住宿业"                                                   
  20. 8 2015 "C37" "铁路、船舶、航空航天和其它运输设备制造业"
  21. 9 1991 "S90" "综合"                                                      
  22. end
复制代码

------------------ copy up to and including the previous line ------------------


二维码

扫码加我 拉你入群

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

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

关键词:Stata year 面板数据 tata IND

11111.png (72.5 KB)

11111.png

22222.png (173.79 KB)

22222.png

沙发
___Xmmy 发表于 2023-9-14 02:28:44
请回复另一个有奖励的帖子,这个帖子删不掉

藤椅
黃河泉 在职认证  发表于 2023-9-14 16:34:54
___Xmmy 发表于 2023-9-14 02:28
请回复另一个有奖励的帖子,这个帖子删不掉
感谢 daniel klein 的回应,请试试
  1. preserve

  2. keep id
  3. sort id
  4. by id : keep if _n == 1
  5. expand 32
  6. sort id
  7. by id : generate year1 = 1990+_n

  8. tempfile balanced
  9. save "`balanced'"

  10. restore

  11. merge 1:1 id year1 using "`balanced'"

  12. sort id year
  13. by id (year) : replace industrycode = industrycode[_n-1] if mi(industrycode)
  14. by id (year) : replace industryname = industryname[_n-1] if mi(industryname)
  15. by id (year) : replace industrycode = industrycode[_n+1] if mi(industrycode)
  16. by id (year) : replace industryname = industryname[_n+1] if mi(industryname)
复制代码

板凳
___Xmmy 发表于 2023-9-15 22:47:04
黃河泉 发表于 2023-9-14 16:34
感谢 daniel klein 的回应,请试试
太感谢黄老师啦!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-21 22:40