stata实操|从国泰安到stata数据集以及初步的数据处理

第一次自己一个人做论文,虽然失败了。。。但是整个过程还是值得好好复盘。

希望能给以后的同学提供一些借鉴,也希望大佬们能够多多指出问题!

首先,根据自己研究的方向查阅文献,找到自己的被解释变量、解释变量、需要的控制变量。

(此处,老师的建议是先把基础的财务报表上的数据都下下来,然后再进行变量的生成,这样更加方便,也有助于后期突发的其他变量的需要,一个一个数据集的合并真的很麻烦(本人本着怀疑的态度又按照这种方法试了一遍))

国泰安的数据查找

打开国泰安数据库,点上面的数据中心即可找到各种数据集,有些数据有直接的数据,但有些数据仍然需要自己想办法生成。

一些数据所在的数据集

  • 公司所在地:公司研究——首次公开发行(A股)里有公司注册地、公司拟上市地,但地区数据有些混乱,例如只写深圳市不写广东省,导致省份数据不能直接substr,需要先用excel筛选功能进行初步的处理。
  • 高管数据:大部分在 公司研究——治理结构里。
  • 国企、非国企:在公司研究——股权性质里。

国泰安上数据的下载

我一般选这种格式,不知道其他的有什么区别。

下载之后,解压到相应的文件夹(一定要解压!)

CSV数据到stata数据 

insheet using 数据文件的所在地址 

从国泰安数据库里下载下来的数据集还包括一个DES文件

 这里直接给数据贴标签有更简单的方法了

直接下载Excel格式(参考连享会文章)

ssc install nrow, replace
ssc install labone, replace

labone, nrow(1) 

将其复制到excel表里再善用分列功能

 利用lower()等功能处理成

再将其复制到do文件,再点击执行就可以将下载的数据集里label进行重新命名 

 这样就拿到了一份比较基础的stata数据集,如果还需要新的变量采用merge

#在merge之前往往需要提取出year年度变量,国泰安的年份数据是以会计截止日期显示的

gen year = substr(accper,1,4)

#将年度数据从字符串转化成数值类型

destring year, replace

#正式merge

merge 1:1 stkcd year using 合并的数据集
keep if _merge==3
drop _merge 

当然keep if _merge==3也不能乱用,需要进行一个大致的分析,判断是不是之前的数据有缺漏、两个数据集存在差异等问题导致不是所有的数据都能完全合并上。

在merge的过程中可能会出现存在重复值的可能,注意报错的英文

此时采用duplicates

先用 duplicates list var看看是哪些数据重复了,这些数据是否能够直接删掉。

 如果可以即可采用duplicates drop var,force

对数据进行初步的统计与清理

得到数据后,往往不能直接使用,因为存在异常值

首先sum var 看看最大值最小值是否异常

也可画图观察

推荐视频腾讯视频 (qq.com)icon-default.png?t=N7T8https://v.qq.com/txp/iframe/player.html?origin=https%3A%2F%2Fmp.weixin.qq.com&vid=a0650bhh02l&autoplay=false&full=true&show1080p=false

#直方图

hist var

#箱型图

graph box var

#小提琴图,需要先下载vioplot

vioplot var

 分别长(出图会有点慢)

 

 

 发现有异常值后

再进行缩尾截尾等处理(可见我之前写的另一篇文章关于异常值处理的)

#缩尾

winsor2 var,cut(1 99) 

#截尾

winsor2 var,cut(1 99) trim

如果想直接用缩尾、结尾数据替代原有变量,则在cut前加上replace。但尽量都别动原有数据,不然不利于后续的改动。

 除此之外

还有一些常见的数据处理,会随着积累慢慢增加上来

#剔除金融行业数据

drop if substr(行业名称,1,1)="I"

还有一个建议

建议大家打开数据集的时候,尽量不要重新打开,而是用clear,这样会更利于用之前用过的数据处理代码,对于每个数据集需要打开关闭的时间节点考虑得更清晰,而不是随便重新打开,关闭的时候也不知道自己处理到那个步骤了,能不能replace原有数据。

希望大家都能跑出理想的结果!(再次心疼一下自己)

### Stata 中的数据清洗方法 在Stata中进行数据清洗是一项复杂但至关重要的任务,能够显著提升后续数据分析的质量和准确性。具体作涉及多个方面。 对于字符型变量转换成数值型的问题,在从Excel导入数据Stata的过程中确可能发生,例如编号`001111`可能被简化为`1111`[^4]。为了避免这种情况影响分析结果,可以在读取文件时指定格式或者调整变量属性以保持原始形式。 针对日期字段的处理,可以利用内置函数如`substr()`来提取特定部分的信息,比如获取年份等有用成分;当面对多源或多时段的数据集时,则可通过`merge`指令现横向连接不同表单内的记录,而采用`append`则有助于纵向堆叠相似结构的数据片段。 此外,为了更好地理解和应用这些技术手段,还可以参考更详尽的教学资源。例如,有例展示了基于中家庭追踪调查(CFPS)这一大型社会经济类面板资料库的具体流程——这不仅限于基础层面的作指南,还包括创建复合指标在内的高级技巧介绍[^2]。 最后值得注意的是,除了上述提到的功能外,还有更多用工具等待探索。像加载外部文件(`use`)、查看整体概况(`describe`)以及计算初步统计数据(`summarize`)都是不可或缺的基础技能[^3]。 ```stata * 导入并预览数据 use "path_to_your_data.dta", clear describe summarize * 处理字符串转数字问题 destring varname, replace force * 提取日期中的年份 gen year=substr(datevar, 1, 4) * 合并两个数据集 merge 1:1 id using other_dataset.dta * 追加新观测值到现有数据集中 append using additional_records.dta ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值