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
|
library(zoo)
gp <- c(1, 1, 2, 2, 2)
var1 <- c(1, 2, 4, 6, 8) # j'attends (1, 5, 7)
var2 <- c(1, 2, 4, 6, 8)
fct_liss <- function(n) {
tab <- as.data.frame(cbind(var1, var2) )
fdr <- function(tab, n) rollapply(tab, n, mean)
## Calcul des moyennes mobiles :
re <- as.data.frame(sapply(tab, # Pour chaque variable.
function(x) unlist(tapply(zoo(x), gp, fdr, n = n) )
) )
## Ajout des numero de groupes
re$gp <- unlist(tapply(gp, gp,
function(x)
{
if (n > length(x))
{
return(x[1])
}else{
return(x[-(1:(n - 1) ) ] )
}
} ) )
return(re)
}
ss <- fct_liss(n = 2) |
Partager