können Sie
df1$consecutive <- c(NA,diff(as.Date(df1$dates))==1)
# > df1
# Value dates consecutive
# 1 5105.47 1970-03-25 NA
# 2 5398.53 1970-04-08 FALSE
# 3 5520.65 1970-04-09 TRUE
# 4 5052.68 1970-04-10 TRUE
# 5 5406.77 1970-04-11 TRUE
# 6 5501.05 1970-04-12 TRUE
versuchen, die Zeichenkette in Date
Format wird es möglich, einfache Operationen durchzuführen, wie wenn man den Unterschied zwischen zwei Daten Durch die Umwandlung. Die Funktion diff()
nimmt einen Vektor als Eingabe und berechnet die Differenz zwischen jedem Eintrag v[i]
des Vektors und seinem vorherigen Eintrag v[i-1]
. Der Differenzvektor hat offensichtlich einen Eintrag weniger als der ursprüngliche Vektor. Da es unmöglich ist, zu bestimmen, ob das erste Datum in dem data.frame fortlaufend ist oder nicht, kann seine Kennung vernünftigerweise auf NA
gesetzt werden.
Im Fall von Daten, wenn die Differenz gleich 1
ist, sind die Tage aufeinanderfolgend und der Vergleich diff(as.Date(df1$dates))==1)
ergibt TRUE
.
Daten
df1 <- structure(list(Value = c(5105.47, 5398.53, 5520.65, 5052.68,
5406.77, 5501.05), dates = structure(1:6, .Label = c("1970-03-25",
"1970-04-08", "1970-04-09", "1970-04-10", "1970-04-11", "1970-04-12"),
class = "factor")), .Names = c("Value", "dates"),
class = "data.frame", row.names = c(NA, -6L))
Was das gewünschte Ergebnis in Ihrem Fall wäre? Hast du 'diff' probiert? –