Prost, Ich habe zwei Datenrahmen mit der folgenden Struktur.Matching und Ersetzen von Werten einer Spalte in einem Datenrahmen nach Datum in r
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"
nicht sicher, ob ich liebe es, aber ' DF1%>% muate_if (is.factor, as.character)%>% zeilenweise()%>% muate (Cost_Index = ifelse (isTRUE (Date
alistaire
Dies ist ein exaktes Duplikat Ihres vorherigen Q .. Sie haben das Richtige getan, indem Sie das Häkchen zu dieser Antwort entfernen, um anzuzeigen, dass Sie nach einem anderen Ansatz suchen, aber danach fragen wieder nicht. – Arun