全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2476 12
2021-02-01
stata新手求问,我现在有每年每个季度末,每支股票的机构持股量(主表数据),想要将这个季度末数据匹配到每支股票在当年这个季度中的每一天当中(匹配表数据),请问该如何实现呢?
主表数据
复制代码



匹配表数据
复制代码



希望能得到帮助,非常感谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2021-2-1 12:27:55
help merge 1:m
二维码

扫码加我 拉你入群

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

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

2021-2-1 12:37:39
zdlspace 发表于 2021-2-1 12:27
help merge 1:m
感谢回复,merge 命令我知道的,我的问题描述的不清楚。现在是这个日期是字符型的,每个股票对应的是10年,每年四个季度的日数据,但是主表数据中的季度数据中的时间是季度末日期,所以merge 的时候我不知道这个匹配项应该如何设置。之前看到的有date q=q(date  “YQ”)这样的命令,但是得不到结果,所以想问的是该怎么改变两个表中的日期格式,请问您有了解吗?
二维码

扫码加我 拉你入群

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

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

2021-2-1 13:21:35
zdlspace 发表于 2021-2-1 12:27
help merge 1:m
感谢您的回复,抱歉我的问题描述的不清楚,我知道merge如何使用,现在是不知道在merge之前怎样把两个表的日期转换成一个格式,比如都转换成某年某季度的格式(yyyyq1、yyyyq2...),现在我的日期是字符型的yyyy-mm-dd,用过gen q =quarterly( trddt,"YQ")但是没有结果,不知道应该怎么把日期格式转换一下才能实现呢,非常感谢!
二维码

扫码加我 拉你入群

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

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

2021-2-1 14:04:58
你这个首先要生成日期变量
gen date = date(trddt,"YMD")
format date %td
gen month = month(date)


然后在你的第二份文件里面把月份转换为季度


replace month = 3 if inlist(month,1,2,3)
replace month = 6 if inlist(month,4,5,6)
replace month = 9 if inlist(month,7,8,9)
replace month = 12 if inlist(month,10,11,12)

然后可以用stkcd month匹配了

二维码

扫码加我 拉你入群

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

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

2021-2-1 14:14:35
use 1,clear
numdate d date=trddt,pattern("YMD")
convdate q q=date
save 1,replace

use 2,clear
numdate d date=trddt,pattern("YMD")
convdate q q=date

merge m:1 stkcd q using 1
list,sep(4) noobs
+----------------------------------------------------------------------------------------------+
  | stkcd        trddt    dnshrtrd   circula~e        date        q   instihold           _merge |
  |----------------------------------------------------------------------------------------------|
  |     2   2011-01-04   1.888e+08   9.611e+10   04jan2011   2011q1   3.505e+09      matched (3) |
  |     2   2011-01-05   1.256e+08   9.622e+10   05jan2011   2011q1   3.505e+09      matched (3) |
  |     2   2011-01-07   1.447e+08   9.733e+10   07jan2011   2011q1   3.505e+09      matched (3) |
  |     2   2011-01-10   1.290e+08   9.568e+10   10jan2011   2011q1   3.505e+09      matched (3) |
  |----------------------------------------------------------------------------------------------|
  |     2   2011-01-11   1.347e+08   9.859e+10   11jan2011   2011q1   3.505e+09      matched (3) |
  |     2   2011-01-12   1.355e+08   9.885e+10   12jan2011   2011q1   3.505e+09      matched (3) |
  |     2   2011-01-17   1.198e+08   9.249e+10   17jan2011   2011q1   3.505e+09      matched (3) |
  |     2   2011-06-30           .           .   30jun2011   2011q2   4.200e+09   using only (2) |
  |----------------------------------------------------------------------------------------------|
  |     2   2011-09-30           .           .   30sep2011   2011q3   3.766e+09   using only (2) |
  |     2   2011-12-31           .           .   31dec2011   2011q4   4.633e+09   using only (2) |
  |     2   2012-03-31           .           .   31mar2012   2012q1   4.461e+09   using only (2) |
  |     2   2012-06-30           .           .   30jun2012   2012q2   5.158e+09   using only (2) |
  |----------------------------------------------------------------------------------------------|
  |     2   2012-09-30           .           .   30sep2012   2012q3   4.794e+09   using only (2) |
  |     2   2012-12-31           .           .   31dec2012   2012q4   5.216e+09   using only (2) |
  |     2   2013-03-31           .           .   31mar2013   2013q1   4.837e+09   using only (2) |
  |     2   2013-06-30           .           .   30jun2013   2013q2   5.261e+09   using only (2) |
  +----------------------------------------------------------------------------------------------+
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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