楼主: 舒语烟沉
4799 14

[面板数据求助] 计算从1999-2016年各年各个公司的高管的学历均值 [推广有奖]

  • 4关注
  • 0粉丝

硕士生

63%

还不是VIP/贵宾

-

威望
0
论坛币
5389 个
通用积分
0.0714
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
603 点
帖子
57
精华
0
在线时间
309 小时
注册时间
2015-7-25
最后登录
2021-4-1

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
需要计算从1999-2016年各年各个公司的高管的学历均值。总体思路是使用循环,对各个公司进行循环,然后找出这个公司的所有高管,而后将其任职时间段与2010年12月31日相匹配,包括这个时间点的就是2010年的高管,然后把这个记录作为2010年的其中一条高管记录。
我的思路是这样的:用while循环搭配 clip(year,indtt,offdtt)这样的条件来做,只要年份在这两个时间之间就能得出我们输入的年份的值,这样后面要求1999年的数据就能用条件if < 20001231 这样的条件筛选,依次类推。本来是打算用forvalues循环语句的,但是不知道要怎么把year的范围放进去,所以尝试用while。

local yr=19991231
while `yr' <= 20161231 {
  gen year = clip(`yr',indtt,offdtt)
  local yr=`yr'+10000
}
format year %8.0f


但是处理结果并不如想象中的那样。
现在不知道该怎么办了。各位大神帮帮忙~~

二维码

扫码加我 拉你入群

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

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

关键词:forvalues forvalue values while Local

data2.dta

35.32 KB

回帖推荐

黃河泉 发表于11楼  查看完整内容

请参考我的苦难史!https://www.statalist.org/forums/forum/general-stata-discussion/general/1370349-complicated-index-calculation-weighted-time。

黃河泉 发表于13楼  查看完整内容

请先 ssc install rangestat
沙发
黃河泉 在职认证  发表于 2017-9-4 11:38:04 |只看作者 |坛友微信交流群
尔后建議用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 https://bbs.pinggu.org/thread-5048204-1-1.htmlhttps://bbs.pinggu.org/thread-5917273-1-1.html

使用道具

藤椅
舒语烟沉 发表于 2017-9-4 11:46:57 |只看作者 |坛友微信交流群
----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str7 comcd str77 lcomnm int poscd str24 position byte degree int(indt offdt)
  4. "C000001" "平安银行股份有限公司"   1 "董事长"    .     . 12711
  5. "C000001" "平安银行股份有限公司"   1 "董事长"    . 12711 13040
  6. "C000001" "平安银行股份有限公司"  10 "总经理"    . 12774 13718
  7. "C000001" "平安银行股份有限公司"   1 "董事长"    . 13040 14304
  8. "C000001" "平安银行股份有限公司"   1 "董事长"    3 13718 16388
  9. "C000001" "平安银行股份有限公司"   1 "董事长"    3 14302     .
  10. "C000001" "平安银行股份有限公司" 120 "副行长"    . 13985 15705
  11. "C000001" "平安银行股份有限公司" 120 "副行长"    3 14693 18625
  12. "C000001" "平安银行股份有限公司"  25 "工会主席" .     . 15515
  13. "C000001" "平安银行股份有限公司"  19 "总会计师" . 14693 16608
  14. end
  15. format %td indt
  16. format %td offdt
复制代码

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

使用道具

板凳
黃河泉 在职认证  发表于 2017-9-4 11:56:19 |只看作者 |坛友微信交流群
舒语烟沉 发表于 2017-9-4 11:46
----------------------- copy starting from the next line -----------------------

---------------- ...
这个问题有点复杂!第一需要用 expand (我猜应该是 indt 与 offdt),来确定每年的高管有哪些人(由于任期原因、所有有些年会有两组人)?第二是教育程度需不需要利用当年任期来加权!最重要的是我不建议继续做下去(因为我学生过去做过类似)是因为教育程度资料根本就是不完整!

使用道具

报纸
舒语烟沉 发表于 2017-9-4 12:00:14 |只看作者 |坛友微信交流群
黃河泉 发表于 2017-9-4 11:56
这个问题有点复杂!第一需要用 expand (我猜应该是 indt 与 offdt),来确定每年的高管有哪些人(由于任期 ...
教育程度的话数据是按resset数据库中获取的,degree中1-博士后; 2-博士; 3-硕士; 4-大学本科; 5-大专;6-高中;7-中专。
后面会替换成“7-博士后; 6-博士; 5-硕士; -大学本科; 3-大专;2-高中;1-中专及以下”再进行处理的

使用道具

地板
黃河泉 在职认证  发表于 2017-9-4 12:01:41 |只看作者 |坛友微信交流群
舒语烟沉 发表于 2017-9-4 12:00
教育程度的话数据是按resset数据库中获取的,degree中1-博士后; 2-博士; 3-硕士; 4-大学本科; 5-大专 ...
我的意思是说有些人根本没有此项资料

使用道具

7
舒语烟沉 发表于 2017-9-4 12:02:27 |只看作者 |坛友微信交流群
indt表示开始任职时间,offdt表示离职时间~

使用道具

8
舒语烟沉 发表于 2017-9-4 12:03:48 |只看作者 |坛友微信交流群
黃河泉 发表于 2017-9-4 12:01
我的意思是说有些人根本没有此项资料!
那如果把indt中缺失值的删除呢?offdt有缺失值应该是目前还处于在职状态

使用道具

9
黃河泉 在职认证  发表于 2017-9-4 15:24:51 |只看作者 |坛友微信交流群
舒语烟沉 发表于 2017-9-4 12:03
那如果把indt中缺失值的删除呢?offdt有缺失值应该是目前还处于在职状态
你还是没搞懂我在讲什么?例如,请看看第 3 笔资料,总经理的 degree 是 missing value! 我猜下一步你可能要删去所有的 missing values ,很不幸地,我也不认为这是一个可以接受的方法!

使用道具

10
舒语烟沉 发表于 2017-9-4 16:34:25 |只看作者 |坛友微信交流群
黃河泉 发表于 2017-9-4 15:24
你还是没搞懂我在讲什么?例如,请看看第 3 笔资料,总经理的 degree 是 missing value! 我猜下一步你可能 ...
如果不考虑数据缺失,这种类型的问题要怎么处理呢?stata有什么命令比较合适的吗?老师让帮忙本科生的学妹做的,但是自己stata也不精通,所以很揪心

使用道具

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

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

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

GMT+8, 2024-6-17 14:04