Bonjour.

Je suis amené dans certain cas a faire des moyennes réduites (je ne suis pas sur que cela soit le bon terme) exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# data.frame d'exemple
d <- data.frame(
  dt  = rep(seq( from = as.POSIXct("2019-01-15"), to = as.POSIXct("2019-06-15"), by = "month")),
  msr = rnorm(6*1000),
  typ = as.factor(round(runif(6*1000,min = 1, max = 2),0))
)
 
# selection de la plage 0.05>0.95 (moyenne reduite ~10%)
mini <- nrow(d) * 0.05
maxi <- nrow(d) - mini
dd <- d[order(d$msr),]
dd <- dd[mini:maxi,]
 
 
# calcul des moyennes
m1 <- aggregate(msr ~ dt, data = dd, FUN = mean)
m2 <- aggregate(msr ~ dt+typ, data = dd, FUN = mean)
 
library(ggplot2)
 
# graphique global
g1 <- ggplot(m1) +
  aes(x = dt, y = msr) +
  geom_bar(stat = "identity", alpha = 0.5) +
  geom_hline(yintercept = 0, lty = 2, col = "red") +
  ggtitle("graph A")
 
# graphique par type
g2 <- ggplot(m2) +
  aes(x = dt, y = msr, fill = typ) +
  geom_bar(stat = "identity", alpha = 0.5, position = "dodge") +
  geom_hline(yintercept = 0, lty = 2, col = "red") +
  ggtitle("graph B")
 
library(gridExtra)
 
grid.arrange(g1, g2, ncol = 2)
Or j'aimerai appliquer la partie "sélection de la plage" sur des sous-ensembles du data.frame.

respectivement:

par ensemble dt avant de créer m1

par ensemble dt + tpy avant de créer m2



Si vous aviez une piste...

PS J’espère avoir été claire n'hésitez pas a me demander des précisions.