#r #filter
Вопрос:
Набор данных представляет собой 1 столбец с тысячами строк, содержащих дату «2021-09-23T06:38:53.458 Z».
С помощью следующего кода я могу подмножествовать строки со вчерашнего дня:
rows_from_yesterday <- df[df$timestamp %like% "2021-09-24", ]
Это работает как заклинание! Теперь я хотел бы автоматизировать этот процесс, потому что я не могу обновлять критерии соответствия каждый день. Как бы к этому подойти? Есть какие-нибудь советы или предложения?
Просто для ясности. Я хотел бы, чтобы «2021-09-24» автоматически обновлялось до «2021-09-25», когда это произойдет завтра. Я попробовал следующее:
rows_from_yesterday <- df[df$timestamp %like% as.character(Sys.Date()-1), ]
К сожалению, это не увенчалось успехом.
Комментарии:
1.
df[df$timestamp %like% as.character(Sys.Date()-1), ]
работает для меня, используя набор данных в ответе ниже.
Ответ №1:
Если я правильно понял, вы хотите отфильтровать вчерашние наблюдения, верно? Если да, то вот решение:
library(dplyr)
library(lubridate)
x <- "2021-09-23T06:38:53.458Z"
df <- tibble(timestamp = x)
df %>%
mutate(timestamp = ymd_hms(timestamp)) %>%
#filter dates equals to yesterday
filter(as_date(timestamp) == (today()-days(1)))