楼主: 2ml.
2699 2

中[数据管理求助] 请问在stata怎么筛选出同一家公司的一个变量首次出现的时间? [推广有奖]

  • 0关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
33 点
帖子
2
精华
0
在线时间
15 小时
注册时间
2021-4-20
最后登录
2021-5-16

楼主
2ml. 发表于 2021-5-5 21:52:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如图,

例如想要筛选出每一家公司share这一列为“1”在样本中首次出现的year,这该怎么处理呢?求助各位大神,非常感谢!


然后将第一次开始拥有共享师即share=1的年度以及之后的年度 ,定义一个新变量为1,如果在该年度之前,则定义这个新变量为0,请问怎么可以实现


二维码

扫码加我 拉你入群

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

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

关键词:同一家公司 Stata 数据管理 tata 筛选出

数据.png (11.5 KB)

数据.png

沙发
nieqiang110 学生认证  发表于 2021-5-7 21:41:09
我stata不熟,可以给出你思路,并给你R代码。
首先基于识别变量和年变量分组,然后各组中求年的最小值,最后筛选出share等于1且年变量和年最小值变量相等的行——你的任务就完成了。
library(magrittr)
data%>%dolyr::group_by(stkcd,year)%>%summarize(.,Y_min=min(year))%>%dplyr::filter(share==1&Y_min=year)%>T%str->data_F

藤椅
DΘstinyじò 发表于 2021-5-7 22:38:05
建议用dataex命令(ssc install dataex)给出示例数据,而不是截图,方便大家用示例数据尝试。
尝试以下代码:
  1. //temp变量表示了第一次出现share==1的年份,wanted变量是想要的新变量。
  2. bys stkcd share : egen temp=min(year)  if share==1
  3. bys stkcd (temp): replace temp=temp[1]
  4. bys stkcd (year): gen wanted=year>=temp
复制代码

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

本版微信群
扫码
拉您进交流群
GMT+8, 2026-4-24 12:06