получение средних значений отсчетов относительно времени

#r

#r

Вопрос:

Я работаю над некоторыми данными о птицах, и мне нужно выяснить, как вычислить среднее количество времени, которое каждый птицелов проводит в окружающей среде, а затем из этого взять среднее количество наблюдений за это среднее время. Показывает, что в среднем за это среднее время вы ожидаете увидеть столько наблюдений.

Тогда я также думал о том, чтобы разделить это на минуты. Итак, каковы средние наблюдения за каждые 20 минут с 12:00 до 12:00 вечера.

Я попробовал это, чтобы получить средства подсчета наблюдений относительно продолжительности минут и времени начала наблюдений:

 aggregate(observation_count ~ duration_minutes   time_observations_started, ebird, mean)
  

Но как мне упорядочить его, как указано выше? Я понял, что в моем приведенном выше коде отсутствуют многие значения данных, в нем не включены все временные наблюдения, он также удаляет те, которые имеют нулевые значения, которые я хочу сохранить.

Воспроизводимый код:

 ebird <- structure(list(observer_id = c("obs34276", "obs3566", "obs134751", 
"obs122516", "obs174363", "obs176629", "obs94083", "obs215920", 
"obs115524", "obs34276", "obs134751", "obs221163", "obs1571", 
"obs44100", "obs133209", "obs175724", "obs34276", "obs34276", 
"obs134751", "obs221163", "obs221163", "obs221163", "obs33014", 
"obs118406", "obs223273", "obs108909", "obs1571", "obs34276", 
"obs14196", "obs134751", "obs134751", "obs115524", "obs102017", 
"obs223273", "obs38838", "obs223273", "obs115059", "obs157963", 
"obs94961", "obs223273", "obs223273", "obs212353", "obs223273", 
"obs38838", "obs122322", "obs94083", "obs223273", "obs35725", 
"obs35725", "obs34276", "obs34276", "obs136048", "obs132777", 
"obs136048", "obs223273", "obs223273", "obs223273", "obs223273", 
"obs223273", "obs223273", "obs157963", "obs40103", "obs157963", 
"obs33014", "obs115059", "obs124499", "obs205892", "obs175724", 
"obs117934", "obs223273", "obs163792", "obs144761", "obs218342", 
"obs223273", "obs108909", "obs223273", "obs108909", "obs148762", 
"obs108909", "obs223273", "obs33014", "obs223273", "obs223273", 
"obs175724", "obs337777", "obs146721", "obs217573", "obs7435", 
"obs120774", "obs148032", "obs209823", "obs230604", "obs156505", 
"obs156505", "obs163984", "obs156505", "obs156505", "obs156505", 
"obs156505", "obs156505"), observation_count = c(0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), observation_date = structure(c(17050, 
14737, 14741, 14737, 14733, 14757, 14743, 14752, 14755, 14755, 
14758, 14786, 14735, 14735, 14735, 14739, 14732, 14733, 14779, 
14772, 14780, 14801, 14794, 14792, 14782, 14785, 14742, 14745, 
14837, 14839, 14846, 14755, 14765, 14756, 14780, 14767, 14851, 
14863, 14855, 14790, 14770, 14826, 14762, 14821, 14821, 14845, 
14764, 14777, 14777, 14863, 14864, 14867, 14874, 14875, 14773, 
14773, 14773, 14781, 14781, 14781, 14875, 14878, 14878, 14880, 
15100, 14868, 14758, 14870, 14882, 14777, 14880, 14730, 14758, 
14774, 14815, 14806, 14829, 14833, 14850, 14806, 14866, 14818, 
14777, 14880, 15880, 15101, 14731, 14730, 14735, 14743, 15095, 
15097, 14757, 14767, 14754, 14761, 14761, 14797, 14804, 14804
), class = "Date"), time_observations_started = structure(c(31380, 
36180, 30600, 47700, 29700, 27000, 45600, 32400, 24300, 30900, 
30600, 30600, 43800, 19800, 56700, 65640, 57300, 30300, 30600, 
55800, 30600, 39600, 60900, 25200, 27060, 23400, 47400, 24300, 
36300, 30600, 30600, 50100, 30900, 37440, 26100, 38100, 35100, 
35100, 33420, 38460, 36000, 56700, 37260, 28800, 28800, 37920, 
22440, 32880, 28680, 62700, 36900, 24600, 41700, 24600, 37320, 
25440, 27900, 25860, 36000, 25860, 27300, 53400, 19800, 37800, 
34200, 37800, 39600, 34200, 35100, 25800, 34200, 28800, 61200, 
33480, 31200, 33660, 38400, 40500, 46800, 33660, 60300, 22440, 
26220, 49800, 60900, 66000, 46800, 45000, 52200, 53100, 21600, 
54900, 24960, 24420, 50400, 29160, 36420, 35880, 24360, 36000
), class = c("hms", "difftime"), units = "secs"), duration_minutes = c(27, 
72, 240, 20, 90, 60, 20, 75, 3, 35, 210, 210, 30, 240, 25, 30, 
20, 15, 210, 90, 210, 180, 5, 15, 5, 60, 35, 30, 115, 210, 210, 
10, 25, 5, 105, 5, 70, 5, 10, 5, 5, 1, 5, 60, 105, 18, 5, 3, 
3, 35, 30, 30, 20, 30, 5, 5, 5, 5, 5, 5, 40, 50, 3, 15, 90, 82, 
120, 5, 120, 5, 90, 210, 30, 5, 10, 5, 30, 30, 10, 5, 5, 5, 5, 
40, 25, 50, 15, 10, 90, 120, 120, 60, 5, 5, 80, 5, 5, 5, 5, 5
)), row.names = c(NA, -100L), class = c("tbl_df", "tbl", "data.frame"
))
  

Комментарии:

1. Что вы пробовали до сих пор??

2. Спасибо! Почему у вас нет observer_id (предположим, что это birders) в RHS вашей формулы, разве вы не хотите усреднять их?

3. Возможно, вы захотите включить только столбцы, которые имеют отношение к вопросу в dput . Также, может быть, показать ожидаемый результат для первых нескольких строк?

4. @jay.sf Вы правы, указывая на это, однако я понял, что это создает повторяющиеся записи, поэтому я выбрал более общую перспективу. Учитывая подсчеты и длительности в течение определенных периодов, принимая средние значения, соответствующие друг другу. Тем не менее, я понял, что в моем приведенном выше коде отсутствуют многие значения данных, в него включены не все временные наблюдения, а также удаляются те, которые имеют нулевые значения, которые я хочу сохранить.

5. @Lime Ага. И time_observations_started обозначает секунды с начала дня?