Я пытаюсь выяснить, как сделать следующее без циклов. У меня есть набор данных топленое времени, изучение сайта и поток, который выглядит следующим образом:подмножество и выполнение вычислений по данным временных рядов, избегая циклов
поток Дата и время на сайте
6/1/2009 00:00 EBT Н.А.
6/2/2009 01:00 EBT Н.А.
6/3/2009 02:00 ЕВТ 0,1
6/4/2009 03:00 ЕВТ Н.А.
6/5/2009 04:00 ЕВТ Н.А.
6/1/2009 00:00 MUT 0,4
06.06.2009 01:00 MUT 0,3
06.06.2009 02:00 MUT 0,2
6/4/2009 3:00 MUT Н.А.
6/5/2009 04:00 MUT Н.А.
мне нужно подмножества этого с помощью сайта, а затем в течение периодов, когда существуют по крайней мере две последующие измерения расхода мне нужно выполнить пару вычислений *, например среднее значение текущего и предыдущего измерений.
Фокус в том, что мне нужно выполнить среднее значение для каждого набора последовательных измерений, т. Е. Если для каждой из последних двух есть три строки, мне нужно среднее значение этого измерения и предыдущее. Я добавил столбец цели к образцу данных с результатами, которые мне бы хотелось получить. *
Я бы хотел, чтобы в итоге получился похожий вид данных с дат-временем, сайтом и результатом вычисления. Для каждого сайта есть полная временная серия.
Спасибо за помощь!
генераторданные:
structure(list(datetime = structure(c(1167627600, 1167717600,
1167807600, 1167897600, 1167987600, 1167627600, 1167717600, 1167807600,
1167897600, 1167987600, 1168077600, 1168167600, 1168257600, 1168347600,
1168437600), class = c("POSIXct", "POSIXt"), tzone = ""), site = structure(c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("EBT",
"MUT"), class = "factor"), flow = c(NA, 0.1, NA, NA, NA, NA,
0.4, 0.2, NA, NA, 0.4, 0.2, 0.1, NA, NA), goal = c(NA, NA, NA,
NA, NA, NA, NA, 0.3, NA, NA, NA, 0.3, 0.15, NA, NA)), .Names = c("datetime",
"site", "flow", "goal"), row.names = c(NA, -15L), class = "data.frame")
Можете ли вы предоставить результирующий набор данных, который вы ищете? Вы можете сделать это легко со многими инструментами в библиотеке R ... '(data.table); s = data.table (образец); s [, mean (flow), by = site] '... – Justin
Отредактированный вопрос должен быть более четким и добавить образец вывода. Благодаря! –