Ich möchte den Wert NA
auf bestimmte Zeilen/Spalten innerhalb eines Datenrahmens festlegen, der vor einem bestimmten Datum auftritt. Aber jede Spalte hat ein anderes Datum/andere Kriterien. Wie würde das funktionieren?Festlegen bestimmter Werte für einen Datenrahmen basierend auf einem Datum Kriterien
Beispieldatenrahmen:
dates <- c("01/01/2015", "06/15/2015", "11/30/2015")
a <- c(1, 2, 3)
b <- c(2, 4, 6)
c <- c(3, 5, 9)
df <- data.frame(Date = dates, A = a, B = b, C = c)
startDate <- c("02/20/2015", "07/28/2015", "12/01/2015")
So würde meine data.frame wie folgt aussehen:
Date A B C
01/01/2015 1 2 3
06/15/2015 2 4 5
11/30/2015 3 6 9
die startDate
als meine Kriterien verwenden, möchte ich einen beliebigen Wert setzen vor diesem Zeitpunkt in der relativen Spalte NA
so, dass mein Endergebnis würde wie folgt aussehen:
Date A B C
01/01/2015 NA NA NA
06/15/2015 2 NA NA
11/30/2015 3 6 NA
Kann mir bitte jemand helfen? Btw, mein realer data.frame hat ungefähr 20+ Spalten. Das obige ist nur ein kleineres Beispiel für mein tatsächliches Problem.
Vielen Dank im Voraus!
Dank für diese - aber wäre es nicht unbedingt arbeiten Nullen mit NA im nächsten Schritt zu ersetzen, wenn es Werte nach dem Startdate sind, die Null sind, nicht wahr? – RiddleMeThis
@RiddleMeThis, die Ausgabe sollte sein, was Sie jetzt wollen. Keine Notwendigkeit, im nächsten Schritt zu "NA" zu konvertieren. –
Ich denke, es ist eigentlich am besten, nicht mit m zu multiplizieren, sondern stattdessen mit m zu teilen. Dadurch erhalten Sie NaN- und Inf-Werte, die Sie dann mit do.call (df, lapply (df, Funktion (x) ersetzen (x, is.infinite (x), NA))) umwandeln können, um die Werte in NAs zu konvertieren . Danke vielmals! Das hilft mir wirklich. – RiddleMeThis