J'essaie de comprendre comment faire ce qui suit sans boucler. J'ai un ensemble de données fondu de temps, le site d'étude, et le flux qui ressemble à:sous-ensemble et effectuer des calculs sur les données de séries chronologiques, en évitant les boucles
site datetime flux
6/1/2009 00:00 EBT NA
6/2/2009 01:00 EBT NA
6/3/2009 02:00 EBT 0,1
6/4/2009 03:00 EBT NA
6/5/2009 04:00 EBT NA
6/1/2009 00:00 MUT 0,4
6/2/2009 01:00 MUT 0.3
6/3/2009 02:00 MUT 0.2
6/4/2009 03:00 MUT NA
6/5/2009 04:00 MUT NA
je dois sous-ensemble par ce site, puis pendant les périodes où il y a au moins deux mesures de débit suivantes je dois effectuer quelques calculs, * par exemple la moyenne de la mesure actuelle et précédente. L'astuce est que j'ai besoin d'effectuer la moyenne sur chaque ensemble de mesures consécutives, c'est-à-dire s'il y en a trois d'affilée pour chacun des deux derniers, j'ai besoin de la moyenne de cette mesure et de la précédente. J'ai ajouté une colonne d'objectif à l'exemple de base de données avec les résultats que j'aimerais obtenir. *
J'aimerais disposer d'une zone de données similaire avec le datetime, le site et le résultat du calcul. Il y a une série à temps plein pour chaque site.
Merci pour toute aide!
générateur de données:
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")
Pouvez-vous fournir l'ensemble de données que vous recherchez? Vous pouvez le faire facilement avec de nombreux outils dans R ... 'library (data.table); s = data.table (échantillon); s [, mean (flow), by = site] '... – Justin
La question éditée doit être plus claire et ajouter un exemple de sortie. Merci! –