Prost, Ich habe zwei Datenrahmen mit der folgenden Struktur.Vergleichen Sie Spalten des Datenrahmens mit mehreren Bedingungen
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
zweiten Datenrahmen DF2 die folgende Struktur:
DF2:
Airlines HeadQ Date
American ATL 09-30-2016
Delta ATL 03-31-2017
Jetzt mit Datenrahmen DF1 und DF2 aufzuzublicken, würde Ich mag DF1 an folgendem Datenrahmen ändern.
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
Die Bedingung ist, Lookup für Airlines und HEADQ von DF1 von DF2 und DF1 wenn $ Date < DF2 $ Date dann mit Cost_Index Cost_Index als 0 oder auch weiterhin machen.
Ich versuchte vergeblich, mit:
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
jemand mir richtige Richtung zeigen kann?
Hinweis:
str(DF1$Date): Date, format: "2016-10-31"
str(DF2$Date): Date, format: "2016-08-31"
, wenn Probleme im Zusammenhang mit Daten präsentiert, die seine hat Daten wirklich Am besten stellen Sie uns Ihre Originaldaten zur Verfügung, damit wir wissen, mit was Sie arbeiten. Können Sie das liefern? Oder zumindest '' str (DF1) '' –
Gerade hinzugefügt die Struktur der Datenrahmen: @Cyrus Mohammadian –
erhalten Sie einen Fehler? Wenn nicht, was hat Ihr Code hervorgebracht? –