r - 过滤到特定列中的特定日期

标签 r date time dplyr

我有一个数据框 df,其中包含 DateTimeUTC 列。

                         ID              DateTimeUTC

                         A               12/4/2019 11:30:30 PM
                         A               12/4/2019 11:30:30 PM
                         B               12/5/2019 11:30:30 PM
                         B               12/5/2019 11:30:30 PM
                         B               12/5/2019 11:30:30 PM

我想进行过滤,以便 DateTimeUTC 仅显示 2019 年 12 月 5 日以来的日期,结果如下:

                           ID              DateTimeUTC


                         B               12/5/2019 11:30:30 PM
                         B               12/5/2019 11:30:30 PM
                         B               12/5/2019 11:30:30 PM

我尝试过这个命令,但没有成功:

                       library('dplyr')
                       library('lubridate')

                       data %>%  filter as.Date(DateTimeUTC == "2019-12-05")

我想要 2019 年 12 月 5 日的所有日期,包括时间(小时、分钟和秒) 这可能吗?

最佳答案

此处,“DateTimeUTC”采用不同的格式。将列转换为DateTime类(好像格式是月-日-年-时-分-秒),并用 as.Date 删除时间,然后进行比较 ( == )

library(dplyr)
library(lubridate)
data %>%
     filter(as.Date(mdy_hms(DateTimeUTC)) ==   "2019-12-05")
#  ID           DateTimeUTC
#1  B 12/5/2019 11:30:30 PM
#2  B 12/5/2019 11:30:30 PM
#3  B 12/5/2019 11:30:30 PM

在OP的代码中,as.Date应用于逻辑向量,无论如何都是 FALSE因为它正在将原始格式与不同的格式进行比较,这将导致执行代码失败,即

"12/4/2019 11:30:30 PM" == "2019-12-05"
#[1] FALSE

包装as.Date这会导致错误

as.Date("12/4/2019 11:30:30 PM" == "2019-12-05")

Error in as.Date.default("12/4/2019 11:30:30 PM" == "2019-12-05") :
do not know how to convert '"12/4/2019 11:30:30 PM" == "2019-12-05"' to class “Date”

数据

data <- structure(list(ID = c("A", "A", "B", "B", "B"), 
   DateTimeUTC = c("12/4/2019 11:30:30 PM", 
"12/4/2019 11:30:30 PM", "12/5/2019 11:30:30 PM", "12/5/2019 11:30:30 PM", 
"12/5/2019 11:30:30 PM")), class = "data.frame", row.names = c(NA, 
-5L))

关于r - 过滤到特定列中的特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59634172/

相关文章:

r - 如何在表格中汇总多个逻辑回归模型?

r - 如何使用 Tidyr 在 Tidyverse 中转置 (t)

java - 获取当前一周日期的正确方法

r - R 中日期向量的核密度估计

r - 将数据拆分或子集为 30 分钟间隔

php - 如何将分钟转换为微时间

R - 如何删除 ggplot2 图中的 log(value) = 0

r - 如何将 “get caption”函数应用于列中的每一行?

mysql - 按最后日期分组 MYSQL

ruby - 在 Ruby 中表示时差