当我根据最近的最近日期尝试merge
两个数据集时,我在Stata遇到问题。
例如,主要数据集是:
date
02apr2007
29oct2008
03jan2008
另一个数据集是:
date
26nov2006
02apr2007
29oct2008
合并的数据集是:
date1 date2
02apr2007 26nov2006
29oct2008 02apr2007
03jan2008 02apr2007
在我想要的数据集中,date2是第一个最近的日期,例如:26nov2006是02apr2007的第一个最近日期。这是基于约束的合并。
有什么建议吗?
对不起,我很抱歉。
答案 0 :(得分:1)
正如@Nick Cox指出的那样,你没有提供你所使用的确切命令,更不用说可重复示例的数据了。您merge
的内容尚不清楚(例如,您如何定义"最后的最近日期"?)以及为什么您获得02apr2007
而不是29oct2008
。但是,我必须在您的"合并数据集"根本不直观。
为了说明这一点,请考虑以下玩具示例:
clear
input id str9 date1a
1 "02apr2007"
2 "29oct2008"
3 "03jan2008"
end
encode date1a, generate(date1b)
save date1, replace
clear
input id str9 date2a
1 "26nov2006"
2 "02apr2007"
3 "29oct2008"
end
encode date2a, generate(date2b)
save date2, replace
use date1, clear
merge 1:1 id using date2
. list date1a date2a date1b date2b
+-----------------------------------------------+
| date1a date2a date1b date2b |
|-----------------------------------------------|
1. | 02apr2007 26nov2006 02apr2007 26nov2006 |
2. | 29oct2008 02apr2007 29oct2008 02apr2007 |
3. | 03jan2008 29oct2008 03jan2008 29oct2008 |
+-----------------------------------------------+
Stack Overflow志愿者并不介意读者。如果没有任何信息可以帮助我们复制您的合并数据集",我们几乎无能为力。