我有一个小时平均值的数据帧,该数据帧是在大约一年的时间内从6个不同的传感器中获取的,这6个传感器中的每一个均位于5个不同的位置。 (示例-site_id arc1045的传感器为0a,0b,0c,0d,0e,0f,site_id arc1046的传感器为0a,0b,0c,0d,0e,0f等)
site_id sensor_id datetime hourly_avg
<chr> <chr> <dttm> <dbl>
1 arc1045 0a 2019-11-15 09:00:00 3.67
2 arc1045 0a 2019-11-15 10:00:00 4.68
3 arc1045 0a 2019-11-15 11:00:00 5.63
4 arc1045 0a 2019-11-15 12:00:00 5.8
5 arc1045 0a 2019-11-15 13:00:00 6.32
6 arc1045 0a 2019-11-15 14:00:00 5.28
7 arc1045 0a 2019-11-15 15:00:00 6.52
8 arc1045 0a 2019-11-15 16:00:00 5.72
9 arc1045 0a 2019-11-15 17:00:00 8.43
10 arc1045 0a 2019-11-15 18:00:00 6.62
但是,缺少某些小时平均值。我想通过检查从开始日期(2019-11-15 09:00:00)到结束日期(2020-08-25 15)的每个sensor_id和site_id的小时间隔来找出这些丢失的读数并为这些行添加NA值:00:11)
我可以通过按小时间隔遍历数据帧来做到这一点,但是有没有更简单的方法可以使用R包来处理呢?
答案 0 :(得分:1)
您可以使用complete
中的tidyr
来填写缺少的时间。
library(dplyr)
library(tidyr)
df %>%
group_by(site_id, sensor_id) %>%
complete(datetime = seq(min(datetime), max(datetime), by = 'hour'))