如何合并Stata中两个数据集的最近日期

时间:2018-04-20 02:58:03

标签: stata

当我根据最近的最近日期尝试merge两个数据集时,我在Stata遇到问题。

例如,主要数据集是:

date
02apr2007
29oct2008
03jan2008

另一个数据集是:

date
26nov2006
02apr2007
29oct2008

合并的数据集是:

date1      date2
02apr2007 26nov2006
29oct2008 02apr2007
03jan2008 02apr2007

在我想要的数据集中,date2是第一个最近的日期,例如:26nov2006是02apr2007的第一个最近日期。这是基于约束的合并。

有什么建议吗?

对不起,我很抱歉。

1 个答案:

答案 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志愿者并不介意读者。如果没有任何信息可以帮助我们复制您的合并数据集",我们几乎无能为力。