楼主: ustcer80
760 0

[数据管理求助] Stata joinby [推广有奖]

  • 0关注
  • 0粉丝

本科生

14%

还不是VIP/贵宾

-

威望
0
论坛币
500 个
通用积分
7.3497
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
922 点
帖子
8
精华
0
在线时间
140 小时
注册时间
2021-10-7
最后登录
2024-12-16

楼主
ustcer80 发表于 2024-12-2 21:40:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
clear
quietly{
clear
input str9 gvkey year str10 fqenddt bhr a
31 2005 "2002/3/31" 0.3565015 0.02116004
31 2005 "2002/6/30" 0.4100328 0.02116004
31 2005 "2002/9/30" -0.2517873 0.02116004
31 2005 "2002/12/31" -0.173169 0.02116004
31 2005 "2003/3/31" 0.0910931 0.02116004
31 2005 "2003/6/30" 0.011535 0.02116004
31 2005 "2003/9/30" -0.0306233 0.02116004
31 2005 "2003/12/31" -0.1218563 0.02116004
608 2005 "2002/6/30" -0.0563066 0.034307506
608 2005 "2002/9/30" -0.1087845 0.034307506
608 2005 "2002/12/31" -0.1365316 0.034307506
608 2005 "2003/3/31" 0.0479617 0.034307506
608 2005 "2003/6/30" -0.082426 0.034307506
608 2005 "2003/9/30" -0.1919279 0.034307506
608 2005 "2003/12/31" -0.0780903 0.034307506
end
gen fqenddt_date = date(fqenddt, "YMD")  
format %tdCCYY-NN-DD fqenddt_date
drop fqenddt
rename(fqenddt_date )(fqenddt)  
        save "test.dta", replace
}

use "test.dta", clear
tempfile raw
save `raw'
rename (*) (*2)
* keep the merging vars same
rename (fqenddt2)(fqenddt)
joinby fqenddt using `raw'
drop if gvkey==gvkey2
sort gvkey  gvkey2  fqenddt               
drop year2
order gvkey year  fqenddt bhr  a   gvkey2   bhr2 a2
*

得到的结果为:
gvkey        year        fqenddt        bhr        a        gvkey2        bhr2        a2
31        2005        2002/6/30        0.4100328        0.02116        608        -0.0563066        0.0343075
31        2005        2002/9/30        -0.2517873        0.02116        608        -0.1087845        0.0343075
31        2005        2002/12/31        -0.173169        0.02116        608        -0.1365316        0.0343075
31        2005        2003/3/31        0.0910931        0.02116        608        0.0479617        0.0343075
31        2005        2003/6/30        0.011535        0.02116        608        -0.082426        0.0343075
31        2005        2003/9/30        -0.0306233        0.02116        608        -0.1919279        0.0343075
31        2005        2003/12/31        -0.1218563        0.02116        608        -0.0780903        0.0343075
608        2005        2002/6/30        -0.0563066        0.0343075        31        0.4100328        0.02116
608        2005        2002/9/30        -0.1087845        0.0343075        31        -0.2517873        0.02116
608        2005        2002/12/31        -0.1365316        0.0343075        31        -0.173169        0.02116
608        2005        2003/3/31        0.0479617        0.0343075        31        0.0910931        0.02116
608        2005        2003/6/30        -0.082426        0.0343075        31        0.011535        0.02116
608        2005        2003/9/30        -0.1919279        0.0343075        31        -0.0306233        0.02116
608        2005        2003/12/31        -0.0780903        0.0343075        31        -0.1218563        0.02116



但是我希望得到的结果为
gvkey        year        fqenddt        bhr        a        gvkey2        bhr2        a2
31        2005        2002/3/31        0.3565015        0.02116004        608                0.0343075
31        2005        2002/6/30        0.4100328        0.02116        608        -0.0563066        0.0343075
31        2005        2002/9/30        -0.2517873        0.02116        608        -0.1087845        0.0343075
31        2005        2002/12/31        -0.173169        0.02116        608        -0.1365316        0.0343075
31        2005        2003/3/31        0.0910931        0.02116        608        0.0479617        0.0343075
31        2005        2003/6/30        0.011535        0.02116        608        -0.082426        0.0343075
31        2005        2003/9/30        -0.0306233        0.02116        608        -0.1919279        0.0343075
31        2005        2003/12/31        -0.1218563        0.02116        608        -0.0780903        0.0343075
608        2005        2002/6/30        -0.0563066        0.0343075        31        0.4100328        0.02116
608        2005        2002/9/30        -0.1087845        0.0343075        31        -0.2517873        0.02116
608        2005        2002/12/31        -0.1365316        0.0343075        31        -0.173169        0.02116
608        2005        2003/3/31        0.0479617        0.0343075        31        0.0910931        0.02116
608        2005        2003/6/30        -0.082426        0.0343075        31        0.011535        0.02116
608        2005        2003/9/30        -0.1919279        0.0343075        31        -0.0306233        0.02116
608        2005        2003/12/31        -0.0780903        0.0343075        31        -0.1218563        0.02116


【问题】
当然上面可以通过改变原始的数据集来实现

请问在不改变原始数据集的情况下,有没有方法实现? 多谢


二维码

扫码加我 拉你入群

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

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

关键词:joinby Stata join tata replace

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-8 01:39