IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Mode d'un vecteur


Sujet :

R

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 37
    Points : 43
    Points
    43
    Par défaut Mode d'un vecteur
    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:
    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)
    }
    Et voici l'utilisation:
    J'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c
    [1] 2
    Levels: 1 2 3
    Dans mon cas c=2 (Je ne comprends pas pourquoi il m'affiche des "levels");
    Je fais ensuite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comb <- Prono(c,comb,S,2,1)
    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(2,comb,S,2,1)
    Ça fonctionne! Franchement R est en train de me tourner en bourrique!

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    Alléluia! Le problème est résolu!
    Dans ma fonction Prono(), je faisais un test du type:
    Que j'ai remplacé par:
    Et comme par miracle plus de soucis.

  3. #3
    Membre actif
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Points : 296
    Points
    296
    Par défaut
    Bonsoir,
    Même si le problème est résolu, j'aimerais clarifier deux points.

    Citation Envoyé par jack-no Voir le message
    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). [...]
    R propose bel et bien des outils pour ça. Les fréquences du contenu d'un objet donné peuvent être calculées avec la fonction table. Après, il suffit d'extraire le maximum du résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    > x <- sample(15, replace=TRUE); x
     [1] 10  4 12 15  7  6  6  7 14 15  4  2  7  5 13
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > y <- table(x)
    > y; y[which.max(y)]
    x
     2  4  5  6  7 10 12 13 14 15 
     1  2  1  2  3  1  1  1  1  2 
    7 
    3
    
    Citation Envoyé par jack-no Voir le message
    [...]
    Dans mon cas c=2 (Je ne comprends pas pourquoi il m'affiche des "levels");
    [...]
    Les "levels" correspondent aux modalités (en Statistique). C'est un type d'objets au même titre que numeric, character, ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  2. Réponses: 17
    Dernier message: 17/10/2002, 20h06
  3. [TP]mode vga
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 05/07/2002, 23h42
  4. Editeur en mode console
    Par logramme dans le forum C
    Réponses: 5
    Dernier message: 11/06/2002, 13h23
  5. Passer en mode 800*600
    Par flavien tetart dans le forum Assembleur
    Réponses: 8
    Dernier message: 30/05/2002, 23h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo