【问题标题】:Stata Merging on Lagged Dates滞后日期的 Stata 合并
【发布时间】:2016-05-23 21:00:03
【问题描述】:

我还有另一个 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 这两个集合,以便具有最小滞后时间的日期对齐。

【问题讨论】:

    标签: merge stata


    【解决方案1】:

    merge m:m 存在,但通常不是一个好主意,正如 Statalist 上的许多线程所解释的那样。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      相关资源
      最近更新 更多