滞后日期的Stata合并

时间:2016-05-23 21:00:03

标签: merge stata

我有另一个Stata约会问题。我有两个数据集,一个有ID和日期。这是第一个数据集:

* Example generated by -dataex-. To install: ssc install dataex
clear
input long ID float Date
104203 18820
104203 18950
104203 19294
104203 20001
104203     .
112589 17083
112589 18684
112589 19291
112589 19292
112589 19312
112589 19752
123712 18565
123712 19207
123712 19270
123712 19303
220348 19230
220348 19278
220348 19861
227642 17065
227642 17079
end
format %td Date

第二个数据集包含相同的ID和一个滞后于第一个数据的日期0-1000天(但大多数都在15天内):

* Example generated by -dataex-. To install: ssc install dataex
clear
input long ID float COMDATE2
112589 17994.756
112589 18686.793
112589  19753.74
112589         .
123712 19303.693
123712         .
123712         .
123712         .
220348 19278.777
220348         .
220348         .
220348         .
227642 17066.824
227642 17079.799
227642 17940.855
227642 17948.822
227642 18735.777
227642 19066.748
227642 20181.797
227642         .
end
format %td COMDATE2

我想将merge这两个文件放在一起。我曾尝试过一次,但日期并没有调整:

merge m:m ID using "C:filename",
gen lag = COMDATE2-Date
bys ID: egen minimum_lag=min(lag)
gen Committment=lag if lag==minimum_lag & lag >=1000 
bys ID Date(Committment) : keep if _n==1

我正在寻找一种正确merge这两套的方法,以便延迟时间最短的日期保持一致。

1 个答案:

答案 0 :(得分:0)

merge m:m存在,但通常是一个坏主意,因为Statalist上的许多主题都在解释。

从您的示例中,没有任何merge成功的机会,因为一个数据集中的所有日期都是整数(每日日期),而另一个数据集中的所有日期都有小数部分,所以片刻的检查显示没有观察结果。 merge中没有近似或最接近匹配的概念。

这里的实质性故事是什么?从表面上看,您有两种日期时间,加入文件的适当方式是append

同样,您的示例缺少日期和日期时间,但不能merge提供信息。

当然,没有人可以评论任何数据集中可能存在的任何其他变量。