我有很长一段时间的井中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
由于数据量大,我希望自动化数据清理过程。目前,我正在使用R tidyverse工具手动删除虚假数据。
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
任何人都可以提供建议以使任务自动化吗?
答案 0 :(得分:0)
如果您可以表达/表达“虚假”数据的条件,则可以使任务自动化。或者您可以将其中的一部分自动化:例如选择您认为数据是伪造的时间的手动选择/选择,将它们放入引导程序/列表中,并设置一个过程以自动从数据中删除这些数据点(基于手动创建的列表)。