楼主: shao192837465
1096 2

[编程问题求助] 构建省份配对 [推广有奖]

  • 0关注
  • 0粉丝

高中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
25 个
通用积分
0.0150
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
329 点
帖子
5
精华
0
在线时间
60 小时
注册时间
2024-2-26
最后登录
2025-10-7

楼主
shao192837465 学生认证  发表于 2024-6-28 09:50:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问有没有大佬知道怎样用stata构建省份对数据?类似于下面这样:stkcd  year    province1   province2
1        2005   湖北           广州
1        2005   湖北          上海
1        2005   湖北          北京
二维码

扫码加我 拉你入群

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

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

关键词:province vince Stata stkcd 请问有没有

沙发
赵安豆 发表于 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学术大模型生成,添加下方二维码,优先体验功能试用



藤椅
Killua609 发表于 2024-6-28 10:08:05
python更easy

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-30 10:43