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 :

Moyenne de certaines lignes dans des colonnes spécifiques


Sujet :

R

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Moyenne de certaines lignes dans des colonnes spécifiques
    Bonjour,

    je rencontre un problème avec un jeu de données dont je voudrais tout simplement calculer les moyennes... mais sur des sous-parties de tableau bien délimitées.

    Exemple de tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
          0      10       11      12     13     14     15     16      17    18   Groupe_A
    7    10      NA     0.90    0.98   1.42   1.32   1.05   1.14    1.51   0.99      TRUE
    9    11    0.90      NA     1.05   1.50   1.60   0.92   1.20    1.86   1.08      TRUE
    8    12    0.98    1.05       NA   1.37   1.66   1.08   1.07    1.07   1.01      TRUE
    5    13    1.42    1.50     1.37     NA   0.90   1.55   1.18    2.17   1.06      TRUE
    6    14    1.32    1.60     1.66   0.90     NA   1.84   1.44    2.06   1.27      TRUE
    1    15    1.05    0.92     1.08   1.55   1.84     NA   0.99    1.17   1.06     FALSE
    2    16    1.14    1.20     1.07   1.18   1.44   0.99     NA    1.58   1.10     FALSE
    3    17    1.51    1.86     1.07   2.17   2.06   1.17   1.58      NA   1.21     FALSE
    4    18    0.99    1.08     1.01   1.06   1.27   1.06   1.10     1.21    NA     FALSE
    Mes participants sont numérotés de 10 à 17 et peuvent appartenir à deux groupes, A ou B.
    Pour chaque participant, j'ai un score par rapport aux autres participants, mon tableau est donc symétrique selon la ligne de NA. Je voudrais comparer les scores au sein d'un groupe et entre les groupes, pour cela j'ai pensé utiliser (dans un premier temps, calcul intra groupe A) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    z<-sum(tableau$Groupe_A, na.rm=TRUE)
     
    intra_groupeA<-data.frame(Sujet=tableau[(1:z),1], Means=rowMeans(tableau[(1:z),(2:z+1)], na.rm=TRUE))
    Seulement, j'obtiens alors le tableau intra_groupeA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       Sujet         Means
    7     10     1.155000
    9     11     1.383333
    8     12     1.360000
    5     13     1.256667
    6     14     1.386667
    ... tableau qui ne correspond pas aux valeurs que j'obtiens par calcul manuel. J'aurais dû obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       Sujet         Means
    7     10     1.155000
    9     11     1.2625
    8     12     1.265
    5     13     1.2975
    6     14     1.37
    Lorsque je remplace z et z+1 par leur valeur (5 et 6) dans la ligne de création du tableau intra_groupeA, j'obtiens bien le tableau attendu, par ailleurs :

    Pouvez-vous m'expliquer pourquoi je n'obtiens le résultat voulu lorsque j'utilise z et comment résoudre le problème ?
    Le tableau présenté est tronqué au tiers et j'aurai une quarantaine de tableaux de ce type à traiter, j'espérais donc pouvoir faire une boucle, d'où l'utilisation de z (tous mes tableau n'ayant pas tout à fait le même nombre de sujets par condition).

    Je vous remercie par avance pour votre aide.

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    j'ai fini par réaliser qu'il manquait simplement des parenthèses, il fallait que j'écrive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    intra_groupeA<-data.frame(Sujet=tableau[(1:z),1], Means=rowMeans(tableau[(1:z),(2:(z+1))], na.rm=TRUE))
    Cependant, je suis surprise de ne pas avoir eu de message d'erreur et j'aurais bien aimé comprendre ce que R a bien pu calculer à la place de ce que je voulais.

  3. #3
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Ah oui, il faut faire très attention à ces fameuses parenthèse ^^

    Une manière assez simple de comprendre ce qu'il s'est passé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    z<-10 # valeur d'exemple prise pour z
     
    (2:z+1)
    [1]  3  4  5  6  7  8  9 10 11
     
    # equivalent à :
     
    (2:z)+1
    [1]  3  4  5  6  7  8  9 10 11
     
    # alors que :
     
    (2:(z+1))
     [1]  2  3  4  5  6  7  8  9 10 11
    Bonne continuation


    Cordialement,


    A.D.

Discussions similaires

  1. Requête SQL mettre des ligne dans des colonnes
    Par karim66 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/02/2012, 20h57
  2. fixer des lignes et des colonnes dans ma feuille
    Par zangaloni dans le forum Excel
    Réponses: 4
    Dernier message: 18/04/2011, 13h17
  3. Faire la moyenne d'une ligne avec des colonnes non conjointes
    Par NewYork dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/12/2010, 10h06
  4. Figer des lignes et des colonnes dans un tableau
    Par Opo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/11/2006, 16h10
  5. Réponses: 15
    Dernier message: 22/07/2005, 09h49

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