执行滚动连接时丢失数据

时间:2018-10-19 00:37:52

标签: join

我有两个数据集,一个包含合并数据(例如合并日期,支付的价格等),另一个包含公司级别的财务报表数据(例如资产,现金流量等)。我想通过与合并目标相关联的唯一CUSIP编号,然后通过合并之前的最新财务报表数据,将这两个数据集合并在一起。

示例:

DS1(Target_CUSIP=c(123456, 234567, 345678, 123456), merger_signing_date=c(12/30/2015, 05/08/2008, 06/02/2013), price=c(1.5, .78, 2, .4))
DS2(Target_CUSIP=c(123456, 123456, 123456, 234567, 234567, 234567, 345678, 345678, 345678), financial_statement_date(10/31/12, 10/31/13, 10/31/15, 12/31/06, 12/31/07, 12/31/08, 12/31/2011, 12/31/2012, 12/31/2013))

这是我输入的内容:

setkey(DS2, Target_CUSIP, financial_statement_date)
setkey(DS1, Target_CUSIP, merger_signing_date)
DS2[DS1, roll=T]

这最终使来自DS1的所有观察结果与来自DS2的相应数据相匹配,但是即使联接之前在DS2中肯定存在相同的数据,联接之后某些DS2数据也会最终丢失。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

我得出的结论是语法正确。基础数据中肯定有错误,尤其是CUSIP的格式。