打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【有问必答】如何重新组合数据

在实际操作中,我们常常需要依据研究的需要将原始的数据重新合,stata常用的数据重新组合的命令有xpose(转置)、reshape(转换)、stack(堆砌)、cross(交叉)等。命令很简单,但关键在于灵活应用。

下面以肖教授提出的问题为例,介绍如何用reshape命令灵活的重新组合数据。

肖教授的原始数据结构是这样的:数据主要包括三部分内容,permno是独特的公司代码(类似于中国的股票代码);vc1-vc3是该公司上市前投资于该公司的风投列表;car1-car3是不同时间窗口内的累积收益率。如下图所示。

现在想研究每个风投在不同时间窗口内的累积收益率,也就是想把数据变成如下这种格式:

在达到最终目的之前,我们先将问题简化,假如数据只包括permno和vc1-vc3(如下图所示)

把它重新组合成这样的格式(如下图)

小编相信绝大部分读者都会做,只需要用reshape long vc,i(permno) j(n)命令就可以了。

那么,想把car1-car3和vc以及permno一一对应起来,应该怎么做呢?其实做法很简单,命令还是reshape long vc,i(permno) j(n)

这是因为,在长数据和宽数据的转换中,对于没有转换的变量,会按照原本的数据对应关系一一列出来。以肖教授的数据为例,在原始的excel文件中,permno(13407)的car1是-0.1989424,那么,在只对vc转换而未对car转换的情况下,所有permno(13407)所对应的car1都是-0.1989424,如下图所示。

这样,我们就基本达到目的了,剩下的就是做一些细微的调整。

由于permno(13407)的风投有3个(vc1-vc3),permno(14499)的风投只有2个(vc1-vc2),所以在reshape后会有一段vc是空的,此时只需要用drop 命令将这部分删掉就可以。

完整的代码是这样的:

import excel Stata_Question.xlsx, firstrow clear

reshape long vc ,i(permno) j(n)

drop if vc == ''

order vc n permno

要达到这样的效果,可以使用不同的方法,比如可以使用循环语句,但用reshape会更简洁一些。



以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                        文字编辑:高娜娜

技术总编:刘贝贝



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
图文:伸筋草药酒每天擦一擦,专治关节炎颈椎病
延缓衰老的9个习惯
国家宝藏网站
洗钱知识大全
​葛根汤(颈椎病)
善恶终有报,汪伪南京政权十九位上将最终结局一览
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服