Вы можете сравнить дату test
с датами в dvec
df$flag <- +(as.Date(df$test) %in% as.Date(dvec))
df
df
# test flag
#1 2009-01-01 00:00:00 1
#2 2009-01-02 01:00:00 0
#3 2009-01-01 02:00:00 1
#4 2010-12-25 03:00:00 1
#5 2009-01-02 04:00:00 0
#6 2009-01-09 05:00:00 0
. +
в начале команды изменяет логические значения (TRUE
/ FALSE
) возвращается от %in%
к целочисленным значениям (1
/ 0
) соответственно.
данные
test <- as.POSIXlt(c("2009-01-01 00:00:00 UTC", "2009-01-02 01:00:00 UTC",
"2009-01-01 02:00:00 UTC", "2010-12-25 03:00:00 UTC",
"2009-01-02 04:00:00 UTC", "2009-01-09 05:00:00 UTC"), tz = "GMT")
df <- as.data.frame(test)
dvec <- as.POSIXlt(c("2009-01-01","2010-12-25"), tz = "GMT")