あなたはそれが2つの日付の差を取るような簡単な操作を行うことが可能となるDate
形式に文字列を変換することで
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
を試すことができます。関数diff()
は、ベクトルを入力として受け取り、ベクトルの各エントリv[i]
と前のエントリv[i-1]
の間の差を計算します。差ベクトルは明らかに元のベクトルよりも1つ少ないエントリを有する。 data.frameの最初の日付が連続しているかどうかを判断することは不可能であるため、その識別子はNA
に合理的に設定できます。
日付の場合、差が1
に等しい場合、日は連続し、比較diff(as.Date(df1$dates))==1)
はTRUE
と評価されます。あなたのケースでは望ましい結果がどうなるか
データ
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))
?あなたは 'diff'を試しましたか? –