我正在尝试合并Asset_NM
,GRADE
和Time_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")
我得到了预期的结果,所以我真的不知道该怎么做。在此先感谢您的帮助,这让我很难过。