楼主: 0261301638
13019 9

[编程问题求助] stata整理数据过程中如何补充缺失的年份? [推广有奖]

  • 2关注
  • 0粉丝

讲师

29%

还不是VIP/贵宾

-

威望
0
论坛币
501 个
通用积分
70.9329
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
6517 点
帖子
259
精华
0
在线时间
331 小时
注册时间
2019-11-2
最后登录
2024-5-12

100论坛币
11.png

我的面板数据时间跨度是2009-2019,但是有的公司比如000004,这个公司的时间跨度仅有2016-2019,我想要生成新的一列,让所有公司的数据跨度都是2009-2019,新生成的变量对于的数值等于缺失值(.)。仅仅使用tsfill,只能补充gaps的年份,但是就不能解决我的问题。














关键词:Stata 整理数据 tata fill 我的问题
沙发
予生 发表于 2020-10-10 16:56:27 |只看作者 |坛友微信交流群
  1. tsfill,full
复制代码

使用道具

藤椅
shudeng2005 发表于 2021-4-18 15:15:49 |只看作者 |坛友微信交流群
楼主解决了吗,我也遇到了相同的问题

使用道具

板凳
shudeng2005 发表于 2021-4-18 17:16:21 |只看作者 |坛友微信交流群
嘿嘿,我会了,先把原始数据处理成只留有单一证券代码的数据,然后expand到你想要的年份数据,再将原始数据与处理好的数据对接,删除merge就成了
比如我的要2009-2016年的数据
duplicates drop  zqd,force
gen  id = _n
expand 8
bys id : gen year = _n +2008

拿这个处理好的对接原始数据就好了,再将缺失值替换成0

使用道具

报纸
cjm199709 发表于 2021-6-8 09:49:54 |只看作者 |坛友微信交流群
shudeng2005 发表于 2021-4-18 17:16
嘿嘿,我会了,先把原始数据处理成只留有单一证券代码的数据,然后expand到你想要的年份数据,再将原始数据 ...
您好,请问一下这个后续要怎么对接呢

使用道具

地板
刘莫名其妙 学生认证  发表于 2021-10-5 09:28:27 |只看作者 |坛友微信交流群
cjm199709 发表于 2021-6-8 09:49
您好,请问一下这个后续要怎么对接呢
merger命令

使用道具

7
accacc陈春琴 发表于 2022-5-14 18:29:05 来自手机 |只看作者 |坛友微信交流群
shudeng2005 发表于 2021-4-18 17:16
嘿嘿,我会了,先把原始数据处理成只留有单一证券代码的数据,然后expand到你想要的年份数据,再将原始数据 ...
你好,我想请问一下合并的时候是根据代码还是年份 多对多进行合并呢?

使用道具

8
冀佛 发表于 2022-10-12 11:02:18 |只看作者 |坛友微信交流群
shudeng2005 发表于 2021-4-18 17:16
嘿嘿,我会了,先把原始数据处理成只留有单一证券代码的数据,然后expand到你想要的年份数据,再将原始数据 ...
你真是个小机智,优秀

使用道具

9
沈事儿 发表于 2023-3-22 10:37:42 |只看作者 |坛友微信交流群
accacc陈春琴 发表于 2022-5-14 18:29
你好,我想请问一下合并的时候是根据代码还是年份 多对多进行合并呢?
同时使用代码和年份

使用道具

10
赵安豆 发表于 2024-5-1 10:49:38 |只看作者 |坛友微信交流群
在Stata中,要补充缺失的年份并使得所有公司的数据跨度都是2009-2019,可以通过以下几个步骤来实现:

1. **确保数据已经以公司和年份排序**。使用`sort`命令按公司和年份排序。

   ```stata
   sort 公司标识符 年份
   ```

2. **使用`tsset`命令设置面板数据**。这一步是为了让Stata识别数据的面板结构。

   ```stata
   tsset 公司标识符 年份
   ```

3. **使用`fillin`命令补全所有组合**。`fillin`命令可以生成所有公司和年份的组合,并为缺失的观察值创建缺失数据。

   ```stata
   fillin 公司标识符 年份
   ```

4. **使用`replace`命令将新生成的缺失观察值设为特定值**。由于`fillin`命令会自动为新增的观察行生成一个标识变量(例如`_fillin`),我们可以利用这个变量来识别哪些是新增加的观察值,并为其它变量赋予缺失值(`.`)。

   ```stata
   replace 新生成的变量 = . if _fillin
   ```

5. **最后,如果不需要`fillin`命令自动生成的标识变量,可以将其删除**。

   ```stata
   drop _fillin
   ```

这样,你就能得到一个所有公司都覆盖2009-2019年份的面板数据集,新补充的年份对应的变量值将会是缺失值(`.`)。

注意:请将`公司标识符`、`年份`和`新生成的变量`替换成你实际使用的变量名。

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



使用道具

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

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

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

GMT+8, 2024-5-18 01:01