#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
обозначает секунды с начала дня?