Я пытаюсь объединить два набора данных в stata. Чтобы построить совпадение 1: 1, я создаю переменную, которая умножает год и идентификатор. В идеале я хотел бы, чтобы он выглядел как 2004000000023. Однако для must of the variables число выходит из значительно другого числа (например, year = 2000, cik = 1961 дает year_cik 1999999991808). Я попытался изменить формат на% 15.0f, но это не сработало. Какие-либо предложения? Я скопировал свой код ниже:Stata: Ошибка при вычислении большой цифровой переменной
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
Спасибо!
Отличный совет. Некоторое чтение источников, найденных с помощью «точности поиска», необходимо для полного понимания. Неверно предположить, что изменение формата отображения может иметь какой-либо эффект, изменяя то, что хранится, неправильное представление, адресованное по адресу http://www.stata-journal.com/article.html?article=dm0067. Представьте, например, что вы выбираете формат с 1 десятичное место; если бы это изменило то, что было сохранено, то изменение округления до двух знаков после запятой было бы невозможно, но не так. Кроме того, форматы отображения обычно десятичные, но Stata обязательно использует двоичные представления для хранения. –