Мой набор данных выглядит следующим образом:
Date.Time Goat.Island Tawharanui Kawau Tiritiri Noises
1 2019-06-10 16:00:00 16.820 16.892 16.749 16.677 15.819
2 2019-06-10 20:00:00 16.773 16.844 16.582 16.654 15.796
3 2019-06-11 00:00:00 16.749 16.820 16.749 16.606 15.819
4 2019-06-11 04:00:00 16.487 16.796 16.654 16.558 15.796
5 2019-06-11 08:00:00 16.582 16.749 16.487 16.463 15.867
6 2019-06-11 12:00:00 16.630 16.773 16.725 16.654 15.867
Это представляет показания температуры в пяти разных местах. Я заинтересован в подсчете суточных и ночных средних для этих сайтов.
До сих пор я думал, что подразделяю весь набор данных на два отдельных кадра данных ежедневных и ночных показаний, а затем вычисляю среднее значение по дням. Тем не менее, не похоже, что можно поднастроить, используя интересующие меня часы:
#Subset entire dataset to get daily values and nightly values, then take means of the day and night values to
#produce daily and nightly means of temperature for each site.
require(lubridate)
with(temperature, temperature[hour(Date.Time) >= 8 & hour(Date.Time) <=17, ]) #select day condition 0800-1700
require(lubridate)
with(temperature, temperature[hour(Date.Time) >= 20 & hour(Date.Time) <= 24, ]) #select night condition 2000-0500
#works for 8pm to midnight but not to 5am
Я также учел это:
#Takes daily average:
temperature %>%
group_by(Date=floor_date(Date.Time, "1 day")) %>%
summarize(Goat.Island=mean(Goat.Island), Tawharanui=mean(Tawharanui))
... что работает хорошо чтобы получить среднесуточное значение, но как бы изменить «1 день» на интересующие меня периоды времени?
Заранее благодарен за помощь!