R - 根据条件从其他数据框向数据框添加特定列

时间:2016-09-13 13:21:05

标签: r dataframe merge

我在R中有2个数据帧,我想使用第一个数据帧中的所有列,并从第二个数据帧添加一列。但是,第二个数据帧中的哪一列将由第一个数据帧中的值确定。 我尝试过合并,和其他人合作,但不知道我在做什么。

DataFrame 1

ODS_Data= data.frame(ContractNumber=c(1,2,1,2),
       TransactionEffectiveDateAdj=as.Date(c('2016-08-01','2016-08-01','2016-09-01','2016-09-01')),
       TransactionTypeCT=c('AF','FS','SW','FS'), GrossAmount=c(100,555,478,632))

DataFrame 2

OLAP_Data= data.frame(PolicyNumber=c(1,2,1,2),
    AsOfDate=as.Date(c('2016-08-01','2016-08-01','2016-09-01','2016-09-01')),
    AFGrossAmount=c(100,0,642,0), FSGrossAmount=c(0,555,0,632), SWGrossAmount=c(0,0,345,0))

最终结果数据框:

Comparison <- data.frame(TrxEffectiveDateAdj=as.Date(character()),
                 PolicyNumber=character(), 
                 TransactionType=character(),
                 ODSTotalGrossAmount=num(),
                 OLAPTotalGrossAmount=num(),
                 CompareResult=character())

应如何填充比较数据框:

Comparison$TrxEffectiveDateAdj = ODS_Data$TransactionDateAdj
Comparison$PolicyNumber = ODS_Data$ContractNumber
Comparison$TransactionType = ODS_Data$TransactionTypeCT
Comparison$ODSTotalGrossAmount = ODS_Data$GrossAmount
Comparison$OLAPTotalGrossAmount = If ODS_Data$TransactionTypeCT = 'AF' then OLAP_Data$AFGrossAmount
ElseIf ODS_Data$TransactionTypeCT = 'FS' Then OLAP_Data$FSGrossAmount
ElseIf ODS_Data$TransactionTypeCT = 'SW' then OLAP_Data$SWGrossAmount
End IF
Comarison$CompareResult = Comparison$ODSTotalGrossAmount - Comparison$OLAPTotalGrossAmount

此外,数据框之间的数据应在ODS_Data$ContractNumber = OLAP_Data$PolicyNumber AND ODS_Data$TransactionEffectiveDateAdj = OLAP_Data$AsOfDate

上匹配

这是很多信息,但我是R的新手,我真的很感激帮助。谢谢!

0 个答案:

没有答案