全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1024 2
2024-06-28
请问有没有大佬知道怎样用stata构建省份对数据?类似于下面这样:stkcd  year    province1   province2
1        2005   湖北           广州
1        2005   湖北          上海
1        2005   湖北          北京
二维码

扫码加我 拉你入群

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

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

全部回复
2024-6-28 09:51:33
在 Stata 中构建省份对数据需要一些步骤,你可以通过以下方法进行:

假设你已经有了一份包含股票代码(stkcd)、年份(year)和省份数量的原始数据。在这个数据集中,每个观测值都包含了某一股票、某一年度以及该年度中涉及的一个或多个省份的信息。为了构建省份对的数据结构,你需要执行如下操作:

1. **创建省份对**:
   首先,你可能需要将原数据按照股票代码和年份分组,并为每一对不同的省份创建新的观测值。

2. **生成省份对的变量**:
   之后,使用循环或 `egen` 命令来生成两个省份变量(province1 和 province2)。

下面是一个基本的例子:

```stata
clear all

* 假设这是你的原始数据
input str5 stkcd int year str8 province
    "1" 2005 "湖北"
    "1" 2005 "广州"
    "1" 2005 "上海"
    "1" 2005 "北京"
end

* 首先,我们需要将省份信息解构为多个观测值
preserve
collapse (drop) _, by(stkcd year province)
bysort stkcd year: gen _n = _n()
expand _n
sort stkcd year _n
label var _n "Observation number within group"
restore

* 然后,生成省份对
gen byte is_pair1 = 0
by stkcd year (province), sort: replace is_pair1 = 1 in 2/l
drop province

* 使用 egen 来生成省份对的变量
egen province1 = mode(_n==is_pair1'), by(stkcd year)
egen province2 = mode(_n!=is_pair1'), by(stkcd year)

* 清理数据,删除临时变量和不必要的观测值
drop _n is_pair1

list stkcd year province1 province2, sepby(year)
```

请注意,在上述示例中,我们假设了每个省份在同一个股票代码和年份下都是唯一的。如果一个股票在同一年度涉及多个省份,则这个过程将为每一对不同的省份生成一个新的观测值。

此外,你可能需要对数据进行一些额外的处理来确保所有可能的省份对都被正确创建。例如,如果你想要包含“湖北-广州”与“广州-湖北”的区别,或者只考虑“湖北-广州”,而不包括重复对,则需要调整上述代码以适应具体需求。最后,请根据你的实际数据结构调整以上示例中的变量名和数据结构。

希望这可以帮助到你!如果还有其他问题,欢迎继续提问。

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



二维码

扫码加我 拉你入群

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

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

2024-6-28 10:08:05
python更easy
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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