это мой фрейм данных:
library(lubridate)
datelist = seq(ymd_hms('1980-01-01 00:00:00'),ymd_hms('1980-07-01 00:00:00'), by = '60 mins')
df = data.frame(replicate(4,sample(0:130,4369,rep=TRUE)))
nbr_missing<-1000
y<-data.frame(row=sample(nrow(df),size = nbr_missing,replace = T),
col=sample(ncol(df),size = nbr_missing,replace = T))
y<-y[!duplicated(y),]
df[as.matrix(y)]<-NA
testframe = as.data.frame(cbind(datelist,df))
Я хочу рассчитать среднедневные / максимальные / мин из почасовых данных.Но я хочу сделать это с разными условиями:
- Рассчитать среднее / мин / макс без допустимых пропущенных значений
- Рассчитать среднее / мин / макс со всеми 24 пропущенными значениями каждоедопустимый день
- Рассчитать среднее / минимальное / максимальное с максимальным из n пропущенных значений, разрешенных каждый день (например, максимум 5 пропущенных значений из 24)
- Рассчитать среднее / минимальное / максимальное с максимальнымиз n пропущенных значений допускается каждый день, но с интервалом не менее 3 часов, например: Пропущенные значения в 10:00, 11:00 и 15:00 не в порядке, пропущенные значения в 10:00, 15:00, 19:00 и 23:00..
Я вроде знаю, как рассчитать среднее значение, у меня есть эта команда, но она на самом деле не работает правильно:
library(dplyr)
testframe_natrue = testframe %>%
group_by(group = gl(n()/24, 24)) %>%
summarise_at(-1, mean, na.rm = TRUE)