我有地下水水位数据(WSE),在10个月的时间内以30分钟递增。我正试图将地下水的海拔平均为每日的数值。理想情况下,我的最后一张桌子应该有一个日期和一天的平均地下水水位。任何帮助都将不胜感激。我附上了我的数据集的一张照片。

发布于 2022-06-04 21:36:38
使用dplyr和lubridate包,您可以为每天创建唯一的组,并计算当天值的平均值(即当天所有30分钟时间间隔值的平均值)。
# Simulate your dataset
date_df <- data.frame(
datetime = seq(
from = as.POSIXct("2020-01-01 00:00"),
to = as.POSIXct("2020-01-10 00:00"),
by = "30 min"
)
) %>%
dplyr::mutate(val = rnorm(nrow(.)))
# group by day, month, and year on 30 minute datetime intervals, then take mean of value within each group
date_df <-
date_df %>%
dplyr::mutate(
day = lubridate::day(datetime),
month = lubridate::month(datetime),
year = lubridate::year(datetime)
) %>%
dplyr::group_by(day, month, year) %>%
dplyr::summarise(
avg_gw_elev = mean(val, na.rm = T)
) %>%
dplyr::ungroup() %>%
dplyr::mutate(
datetime = as.Date(paste0(year, "-", month, "-", day))
) %>%
dplyr::select(datetime, avg_gw_elev)
head(date_df)
# A tibble: 6 x 2
datetime avg_gw_elev
<date> <dbl>
1 2020-01-01 0.120
2 2020-01-02 0.0295
3 2020-01-03 -0.0850
4 2020-01-04 -0.0367
5 2020-01-05 0.201
6 2020-01-06 0.0132https://stackoverflow.com/questions/72503032
复制相似问题