У меня есть длинный временной ряд 5-минутных данных об уровне воды из скважин. Ряд содержит ошибки измерения, которые легко увидеть на графиках временных рядов.
график временных рядов уровня воды
head(data)
# A tibble: 229,120 x 4
date temp P_comp_m alt_m
<dttm> <dbl> <dbl> <dbl>
1 2016-06-10 11:50:00 21.8 1.09 1008.
2 2016-06-10 11:55:00 21.2 1.07 1008.
3 2016-06-10 12:00:00 21.1 1.06 1008.
4 2016-06-10 12:05:00 21.1 1.05 1008.
5 2016-06-10 12:10:00 21.9 1.05 1008.
6 2016-06-10 12:15:00 21.8 1.04 1008.
7 2016-06-10 12:20:00 21.7 1.03 1008.
8 2016-06-10 12:25:00 21.6 1.03 1008.
9 2016-06-10 12:30:00 21.5 1.02 1008.
10 2016-06-10 12:35:00 21.5 1.01 1008.
# ... with 229,110 more rows
Из-за объема данных я хочу автоматизировать процесс очистки данных. В настоящее время я удаляю ложные данные вручную с помощью инструментов tidyverse R.
data[between(data$date,
as_datetime("2016-11-27 17:00:00"),
as_datetime("2016-11-29 01:50:00")),] <- data %>%
filter(between(date, as_datetime("2016-11-27 17:00:00"),
as_datetime("2016-11-29 01:50:00"))) %>%
mutate(temp = NA, # temperature column
P_comp_m = NA, # pressure
alt_m = NA) # altitude
Кто-нибудь может дать предложения по автоматизации задачи?