Bonsoir cher(e)s ami(e)s,
Depuis un moment maintenant je cherche à calculer le mode (la fréquence la plus élevée) d'un vecteur.
Je n'ai pas trouvé de fonction toute faite ( ce qui est dommage pour un programme aussi réputé en stat).
Bref, je l'ai codé moi-même (ce n'était pas très compliqué).
Le problème est que lorsque je veux utiliser le résultat pour faire autre chose avec j'ai une erreur.
Voici mon code:
Et voici l'utilisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 mod <- function(x) { m<- unique(x) L<- length(m) w<- NULL for(i in 1:L) w<-c(w,length(x==m[i])) h<- sort(w, decreasing =TRUE)[1] res<- x[grep(h,w)][1] return(res) }
J'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part c <-mod( vecteur )
Dans mon cas c=2 (Je ne comprends pas pourquoi il m'affiche des "levels");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 c [1] 2 Levels: 1 2 3
Je fais ensuite:
J'ai une erreur; Alors qu'en remplaçant c par 2 directement comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part comb <- Prono(c,comb,S,2,1)
Ça fonctionne! Franchement R est en train de me tourner en bourrique!
Code : Sélectionner tout - Visualiser dans une fenêtre à part comb <- Prono(2,comb,S,2,1)
Partager