Фильтрация большого набора данных даты / времени с шагом 15 минут в R - PullRequest
1 голос
/ 06 августа 2020

Я пытаюсь использовать функцию dplyr :: filter, как показано ниже:

df <- dplyr::filter(df,grepl(c('%%:00:00','%%:15:00','%%:30:00','%%:45:00'),date_time))

, но это не дает результатов. Мое поле date_time имеет формат «ГГГГ-ММ-ДД ЧЧ: ММ: СС».

1 Ответ

0 голосов
/ 06 августа 2020

Нам нужна одна строка pattern внутри grepl, это можно сделать с помощью paste с | (ИЛИ). Таким образом, он проверяет соответствие любого из векторных элементов и возвращает TRUE/FALSE для каждой строки, чтобы отфильтровать эти строки

pat <- paste(c('%%:00:00','%%:15:00','%%:30:00','%%:45:00'), collapse="|")
library(dplyr)
df %>%
     filter(grepl(pat, date_time))

ПРИМЕЧАНИЕ: %% неясно, поскольку пример набора данных OP не приведен.

...