全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2130 4
2022-08-23
您好,我想问一下stata ,我需要把发行债券的当年及以后取1,以前年份取0【或者某id某一变量首次实现的年份和后续年份取1,其余年份取0】怎么写命令呢?
二维码

扫码加我 拉你入群

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

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

全部回复
2022-8-25 02:56:13
gen dummy = year>= xx (发行债券那一年)
二维码

扫码加我 拉你入群

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

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

2022-8-25 02:58:34
gen dummy = year>=债券发行那一年
二维码

扫码加我 拉你入群

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

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

2022-9-7 20:16:24
xtset id year
gen dt = 0
lab var dt"政策实行年份"
replace dt = 1 if year >=发行政策当年的年份
二维码

扫码加我 拉你入群

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

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

2024-10-20 12:53:54
在Stata中,你可以使用`egen`命令中的`max()`函数来创建一个新的变量,该变量表示债券发行的最多年份。然后,你可以通过比较当前年份和债券发行的最多年份来创建一个指示变量。以下是一个示例:

假设你的数据集中有两个变量:`id`(公司ID)和`year`(年份),以及`bond_issue`(在当年是否发行债券)。首先,你需要将数据设置为面板数据格式:

```
xtset id year
```

然后创建一个指示变量表示某id首次实现债券发行的最多年份及其后所有年份。这里我们使用`egen`命令和`max()`函数来找到每个ID的最大`bond_issue`年份:

```
bysort id: egen max_bond_year = max(year) if bond_issue == 1
```

这行代码会为每个id创建一个新变量`max_bond_year`,该变量表示其债券发行的最晚(即首次)年份。注意这个命令假设一旦某个id发行了债券,在后续年份中`bond_issue`可能为0或1;也就是说,我们关注的是首次发行。

接下来,我们将根据当前年份是否等于或大于`max_bond_year`来创建指示变量:

```
gen bond_issued_flag = 0
replace bond_issued_flag = 1 if year >= max_bond_year & bond_issue == 1
```

或者更简洁的版本是直接在生成指示变量时进行条件判断:

```
gen bond_issued_flag = (year >= max_bond_year)
```

但请注意,这将标记所有年份为1或0。为了确保我们只标记首次发行债券及其后的年份,我们需要对`bond_issue`进行额外的检查(如上面第一个replace命令所示)。

如果你的数据中`bond_issue`是布尔类型变量(即当年是否发债),那么上述命令应该能够正确地识别首次发行及其后所有年份。但你可能需要根据数据的具体格式和结构调整这些步骤,尤其是关于如何确定某id首次实现债券发行的最多年份的部分。如果`bond_issue`只在发行当年标记为1,则以上方法应直接适用;但如果存在后续年份再次标记的情况,可能需要更复杂的逻辑来确保我们关注的是真正的“首次”发行。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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