尽管匹配,合并仅返回部分数据

时间:2017-08-11 17:16:52

标签: r

我正在尝试合并Asset_NMGRADETime_Period上的两个数据框,数据框的子集在下面。

在完整的数据帧中,Time_Period的值在两个数据帧中的范围为0-360。但是,当我合并数据帧时,我只返回值为Time_Period的记录,它们是三的倍数。例如,代替值为{1}}的0,1,2,3等等,直到360,它返回3,6,9,12等,直到360.

Time_Period

ex.df ENTITY_NM ALM_PORTFOLIO Asset_NM GRADE FINANCIAL_ELEM_ID CF_DATE Time_Period 743 A E Corporate-Domestic A 100 8/15/2017 0 744 A E Corporate-Domestic A 430 9/15/2017 1 745 A E Corporate-Domestic A 430 10/15/2017 2 746 A E Corporate-Domestic A 430 11/15/2017 3 747 A E Corporate-Domestic A 430 12/15/2017 4 748 A E Corporate-Domestic A 430 1/15/2018 5 749 A E Corporate-Domestic A 430 2/15/2018 6 750 A E Corporate-Domestic A 430 3/15/2018 7 751 A E Corporate-Domestic A 430 4/15/2018 8 752 A E Corporate-Domestic A 430 5/15/2018 9 753 A E Corporate-Domestic A 430 6/15/2018 10 754 A E Corporate-Domestic A 210 7/15/2018 11 ex.df2 Asset_NM GRADE Months_Out Aug 2017 Sep 2017 Oct 2017 Time_Period 723 Corporate-Domestic A 2 1% 1% 1% 3 724 Corporate-Domestic A 3 1% 1% 1% 4 725 Corporate-Domestic A 4 1% 1% 1% 5 726 Corporate-Domestic A 5 1% 1% 1% 6 727 Corporate-Domestic A 6 1% 1% 1% 7 728 Corporate-Domestic A 7 1% 1% 1% 8 729 Corporate-Domestic A 8 1% 1% 1% 9 730 Corporate-Domestic A 9 1% 1% 1% 10 731 Corporate-Domestic A 10 1% 1% 1% 11`

exmerge <- merge(x = ex.df, y = ex.df2, by = c('Asset_NM','GRADE','Time_Period'))

我几乎可以肯定问题与ex.df中的Time_Period列有关,该列在当前月份推导为0,或者从现在开始每月推出1:

             Asset_NM GRADE Time_Period ENTITY_NM ALM_PORTFOLIO FINANCIAL_ELEM_ID CASH_FLOW_DATE Months_Out Aug 2017 Sep 2017
1  Corporate-Domestic     A           3         A             E               430    11/15/2017          2       1%    1%
2  Corporate-Domestic     A           6         A             E               430     2/15/2018          5       1%    1%
3  Corporate-Domestic     A           9         A             E               430     5/15/2018          8       1%    1%
  Oct 2017
1       1%
2       1%
3       1%`

`ex.df$Time_Period <- ifelse(ex.df$FINANCIAL_ELEM_ID == 100,0,(as.yearmon(ex.df$CASH_FLOW_DATE, format = "%m/%d/%Y")-FORECASTdate)*12) `

奇怪的是,当我不使用上面的公式推导出Time_Period,并使用时,说:

FORECASTdate <- as.yearmon(Sys.Date(),format = "%m/%d/%Y")

我得到了预期的结果,所以我真的不知道该怎么做。在此先感谢您的帮助,这让我很难过。

0 个答案:

没有答案