我正在使用面板数据,我正在尝试根据year
和唯一id
变量合并数据集。但是,我的id
变量在所有数据集中并不统一。虽然,我认识到这是合并数据的基础,但我不确定如何解决这个问题。
我正在为世界各国使用数据,但并非所有数据都记录在所有数据集中。对于一些人来说,包括更多国家。目前,数据按国家/地区id
排序,按字母顺序排列,每个国家/地区都在Stata中分配了一个数值。因此,根据该特定数据集中有多少个国家/地区,某些国家/地区分配了不同的值。因此,当我根据每个国家的id
和year
合并数据时,这些数据对应不同的国家/地区。
有没有办法为每个国家/地区分配相同的号码,并且无论数据集中的国家/地区数量如何,都可以统一这个数字?
答案 0 :(得分:3)
请提供一些未来问题的尝试代码。这里的许多用户都希望以代码的形式看待一些研究工作。
如果我理解正确您需要做的只是merge
,包括关键变量中的字符串country
变量(以及year
)。这相当于一个简单的merge
;没有什么花哨。
使用state
代替country
的示例:
*clear all
set more off
*----- example using file -----
sysuse census
keep state pop
gen year = 1999 in 1/25
replace year = 2000 in 25/50
set seed 139476
gen randnum = runiform()
drop if randnum > 0.7
drop randnum
list
tempfile usingf
save "`usingf'"
*----- example main file -----
clear all
sysuse census
keep state death
gen year = 1999 in 1/25
replace year = 2000 in 2/50
set seed 139476
gen randnum = runiform()
drop if randnum > 0.5
drop randnum
list
*----- merge and keep only matching -----
merge 1:1 state year using "`usingf'", keep(match)
order state year
list
这两个文件的一些观察结果与year
和state
变量相匹配。后者是一个字符串变量。无需预先encode
。