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 :

Préparation d'un tableau pour une analyse ANOVA


Sujet :

R

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 22
    Points : 23
    Points
    23
    Par défaut Préparation d'un tableau pour une analyse ANOVA
    Bonjour, j'ai un tableau avec 3 variables comme ci-dessous

    Région produit valeurs
    A a 20
    B b 30
    C d 53
    D f 68
    E t 26
    F g 98


    et je voudrais le transformer comme ci-dessous

    Région a b d f t g
    A 20
    B 30
    C 53
    D 68
    E 26
    F 98

    et merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Points : 343
    Points
    343
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xtabs(valeurs  ~ Region + produit, data )

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Bonjour, j'ai utilisé une autre méthode avec la library tidyr qui donne directement le tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data_trans<-data %>% spread(key=produit, value=valeurs)

  4. #4
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    R propose de nombreuses possibilités pour faire ce que tu désires, notamment la fonction reshape de base.

    Question : pourquoi dans ta solution utiliser "%>%" et non directement : data_trans<-spread( data, key=produit, value=valeurs), le premier argument de la fonction spread étant les données sur lesquelles tu travailles ? Vas-tu utiliser x %>% sqrt à la place sqrt( x) ? Si non quel est le critère pour utiliser ou non le pipe ? [N.B. : je n'ai jamais eu de réponse à cette dernière question pourtant cela fait un certain temps que je la pose.]

  5. #5
    Membre actif Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    Citation Envoyé par faubry Voir le message
    Si non quel est le critère pour utiliser ou non le pipe ? [N.B. : je n'ai jamais eu de réponse à cette dernière question pourtant cela fait un certain temps que je la pose.]
    Pour améliorer la lisibilité lors d'un enchainement d'opérations sans avoir explicitement de valeurs allouées ou des appels imbriqués. Après libre à chacun de choisir de l'utiliser ou non...

    voir par exemple https://uc-r.github.io/pipe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    df <- faa(bar(foo(df)))
     
    df <- foo(df)
    df <- bar(df)
    df <- faa(df)
     
    df <- foo(df) %>%
      bar() %>%
      faa()
    cdlt

  6. #6
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    Merci de ta réponse mais c'est la réponse convenue. En effet, sur ton exemple, cela peut améliorer la lisibilité mais dans de nombreux cas plus complexes, quand l'enchainement s'étend sur une demi-douzaine, voir plus d'une dizaine de lignes de code, cela finit par devenir très abscons. De plus, et c'est un paramètre à prendre en ligne de compte, non seulement cette écriture peut coûter très chère en termes de performances (temps de calcul essentiellement) mais n'est pas toujours compatible avec le code R, notamment d'après ce qu'on trouve sur le net, dès qu'il y a évaluation lazzy evaluation qui est quand même un point fort de R.

    De plus, malgré tout ce qui est dit, je n'ai jamais trouvé aucun argument convaincant pour écrire x %>% sin() à la place de sin( x).

    Bonnes fêtes

  7. #7
    Membre actif Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Points : 200
    Points
    200
    Par défaut
    je suis assez d'accord Parfois il ne faut pas chercher plus loin que la réponse convenue (en réalité je n'ai rien d'autre à offrir comme réponse)... Je crois que je n'utilise le pipe qu'avec dplyr pour enchaîner qqs sélections, filtres etc!

    Je suis tout à fait d'accord pour les performances mais je ne pense pas pas que le pipe soit le seul pb, plus les commandes sont "abstraites", plus ce qui se passe en dessous est "complexe" et on maîtrise peu ou pas l'allocation mémoire etc...!

    Bonnes fêtes aussi et merci pour ttes tes réponses sur le forum

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

Discussions similaires

  1. Préparation table pour une analyse de survie
    Par ion_ion dans le forum SAS STAT
    Réponses: 2
    Dernier message: 14/02/2014, 09h09
  2. Réponses: 13
    Dernier message: 30/06/2008, 15h25
  3. ArrayList ou Tableau pour une JTable
    Par bandit_debutant dans le forum Composants
    Réponses: 2
    Dernier message: 12/06/2008, 12h28
  4. Problème tableau pour une requête
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2005, 20h21
  5. [VB.NET] Quel objet tableau pour une recherche indexée ???
    Par Kitano dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/09/2004, 09h38

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