Bonjour,
Je cherche à optimiser le calcul de quantiles sur un univers de sociétés et de dates. Jusque là rien de bien compliqué, sauf qu'il faut que je calcule les quantiles sur les sociétés d'un même secteur d'activité.
J'ai donc une matrice qui stocke les données avec les dates en lignes et les sociétés en colonnes, matrice qu'on appellera data, et j'ai un vecteur de secteurs d'activité de la taille du nombre de sociétés et trié dans le même ordre que les colonnes de ma matrice. J'espère que je n'ai perdu personne, là :p). Bien sûr, la grandeur que l'on souhaite quantiler est variable, ça peut être le nombre d'employés, le CA, ....
Voici le code qui me permet de calculer les quantiles :
Mon souci est que c'est très long à calculer (car 1300 dates, et 3000 sociétés), alors connaissez-vous un moyen d'optimiser ce code ?
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 #Quantiles avec Secteur QData <- matrix(NA,nrow(data),ncol(data)) dimnames(QData )<- dimnames(data) sapply(1:nrow(data),function(l) { sapply(DistinctSector, function(i) { SectorVector !=i -> k k[is.na(k)]<-TRUE datat<- data[l,] datat[k] <- NA Rank <- rank(datat ,na.last = "keep",ties.method= "first") QData [l,!k] <<- qntl(Rank, breaks = seq(0, 1, by = 0.01))[!k] rm(Rank,datat ,k) gc(verbose = FALSE) })->u })->res
Merci d'avance
Partager