Combine e substitua colunas do quadro de dados por várias condições

Saúde, eu tenho dois quadros de dados com a seguinte estrutura.

DF1:
Airlines           HeadQ      Date           Cost_Index
American           PHX        07-31-2016     220
American           ATL        08-31-2016     150
American           ATL        10-31-2016     150
Delta              ATL        10-31-2016     180
American           ATL        08-31-2017     200

O segundo quadro de dados DF2 tem a seguinte estrutura:

DF2:
Airlines           HeadQ      Date          
American           ATL        09-30-2016
Delta              ATL        03-31-2017

Agora, consultando os quadros de dados DF1 e DF2, gostaria de alterar o DF1 para o seguinte quadro de dados.

DF1:
Airlines           HeadQ      Date           Cost_Index
American           PHX        07-31-2016     220
American           ATL        08-31-2016     0
American           ATL        10-31-2016     150
Delta              ATL        10-31-2016     180
American           ATL        08-31-2017     200

A condição é: procure Airlines e HeadQ do DF1 no DF2 e, se DF1 $ Date <DF2 $ Date, faça Cost_Index como 0 ou continue com Cost_Index.

Tentei, sem sucesso, com:

DF1$Cost_Index <- ifelse(DF1$Airlines == DF2$Airlines & DF1$HeadQ == DF2$HeadQ 
        & DF1$Date < DF2$Date, 0, DF1$Cost_Index)


Warning:
1: In DF1$Airlines == DF2$Airlines : longer object
length is not a multiple of shorter object length". 
2: In<=.default(DF1$Date, DF2$Date) : longer object length is not a
multiple of shorter object length

DF1:
Airlines           HeadQ      Date           Cost_Index
American           PHX        07-31-2016     220
American           ATL        08-31-2016     0
American           ATL        10-31-2016     0
Delta              ATL        10-31-2016     0
American           ATL        08-31-2017     200

Alguém pode me indicar a direção certa?

Nota:

str(DF1$Date): Date, format: "2016-10-31"
str(DF2$Date): Date, format: "2016-08-31"

questionAnswers(1)

yourAnswerToTheQuestion