【发布时间】:2015-10-24 11:43:10
【问题描述】:
我正在尝试合并 stata 中的两个数据集。为了构建 1:1 匹配,我正在构建一个将年份和标识符相乘的变量。理想情况下,我希望它看起来像 2004000000023。但是,对于必须的变量,这个数字出现的数字大不相同(例如 year = 2000,cik = 1961 产生的 year_cik 为 1999999991808)。我试图将格式更改为 %15.0f 但没有奏效。有什么建议么?我在下面复制了我的代码:
use "/Users//Desktop/Research/13D.dta", clear
gen year= year(rep_file_date)
destring company_fkey, replace
format company_fkey %15.0f
recast float company_fkey
destring year, replace
format year %15.0f
gen year_cik =.
format year_cik %15.0f
replace year_cik = company_fkey + (year * (10^9))
save "/Users//Research/13D_edited.dta", replace
use "/Users//Desktop/Research/Crosswalk.dta"
destring cik, replace
format cik %15.0f
destring fyear, replace
format fyear %15.0f
destring gvkey, replace
format gvkey %15.0f
gen year_cik = cik + (fyear * (10^9))
format year_cik %15.0f
gen year_gvkey = gvkey + (fyear * (10^8))
format year_gvkey %15.0f
save "/Users//Desktop/Research/CrossWalk_edited.dta", replace
use "/Users//Desktop/Research/Share_Retainer.dta"
destring year, replace
format year %15.0f
destring gvkey, replace
format gvkey %15.0f
gen year_gvkey = gvkey + (year * (10^8))
format year_gvkey %15.0f
save "/Users//Desktop/Research/SR_edited.dta", replace
use "/Users//Desktop/Research/13D_edited.dta"
merge 1:1 year_cik using "/Users//Desktop/Research/CrossWalk_edited.dta"
rename _merge first_merge
merge 1:1 year_gvkey using "/Users//Desktop/Research/SR_edited.dta"
rename _merge second_merge
谢谢!
【问题讨论】:
标签: variables merge format stata