Здесь DateTimeUT C находится в другом формате. Преобразуйте столбец в класс 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")
Ошибка в as.Date.default ("4/4/2019 11:30: 30 PM "==" 2019-12-05 "):
не знаю, как преобразовать '" 4/4/2019 11:30:30 PM "==" 2019-12-05 "в класс« Дата »
данные
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))