根据您的描述,我认为您的列是日期时间,而不仅仅是日期,对吗?这是一个重要的区别,因为日期和日期时间在 R 中是单独的类。如果您提供数据样本以便人们能够更好地理解和帮助,这也很有帮助。将来您可以使用dput(head(df, 10)) 之类的东西,然后将输出复制并粘贴到您的问题中。对于这个问题,我相信你想要的应该很简单。
这里我们创建一些数据作为示例:
x <- c("22/01/01 08:00:00", "22/01/02 08:00:00", "22/01/03 08:00:00", "22/01/01 09:00:00")
x <- as.POSIXct(x, format = c("%y/%m/%d %H:%M:%S"))
y <- c("22/01/01 09:00:00", "22/01/01 08:00:00", "22/01/01 09:00:00", "22/01/02 10:00:00")
y <- as.POSIXct(y, format = c("%y/%m/%d %H:%M:%S"))
df <- data.frame(x, y)
如果你的日期时间是你在问题中列出的格式,我会冒昧地说它们是字符,可能需要像我上面所做的那样格式化为 POSIXct 格式。您可以使用日期部分,但您可能需要根据格式更改时间。我认为这部分可能比创建指标变量本身需要更长的时间。
该策略只是创建您要检查的日期时间的参考向量,然后查看您感兴趣的日期时间是否在其中。
date_check <- df$y
df$x_in_y <- ifelse(df$x %in% date_check, "yes", "no")
这就是它的样子。您会注意到它们是否被视为不相等的时间不同。
df
#> x y x_in_y
#> 1 2022-01-01 08:00:00 2022-01-01 09:00:00 yes
#> 2 2022-01-02 08:00:00 2022-01-01 08:00:00 no
#> 3 2022-01-03 08:00:00 2022-01-01 09:00:00 no
#> 4 2022-01-01 09:00:00 2022-01-02 10:00:00 yes
由reprex package (v2.0.1) 于 2022-01-17 创建