Как мне установить интересующие периоды времени, например, между 3-часовыми отрезками в день? - PullRequest
0 голосов
/ 30 апреля 2020

Мой набор данных выглядит следующим образом:

            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 день» на интересующие меня периоды времени?

Заранее благодарен за помощь!

...