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 :

Transformer une base de données en matrice


Sujet :

R

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 29
    Points
    29
    Par défaut Transformer une base de données en matrice
    Bonjour,

    Je souhaiterais transformer ma base de données ayant pour colonnes les variables: LOT, PARAMETER, AVERAGE en une matrice ayant pour colonne la variable PARAMETER, pour ligne la variable LOT, et à l'intérieur les différentes valeurs (AVERAGE) correspondantes.

    Cela est-il réalisable sous R ?

    Merci
    Did

  2. #2
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Re-bonjour,

    Toujours avec des sapply... un petit exemple :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    > data <- data.frame(LOT=rep(letters[1:4], each=3),
    +                    PARAMETER=rep(LETTERS[1:3], 4),
    +                    AVERAGE=rnorm(12))
    > data
       LOT PARAMETER    AVERAGE
    1    a         A -0.7579081
    2    a         B  0.9047863
    3    a         C -0.6085727
    4    b         A  0.5109891
    5    b         B  0.7513256
    6    b         C -0.6888565
    7    c         A -0.7027887
    8    c         B  2.3673368
    9    c         C -1.6334597
    10   d         A -0.1502221
    11   d         B -0.4466045
    12   d         C -0.9550799
    > 
    > class(data$LOT)
    [1] "factor"
    > 
    > sapply(levels(data$PARAMETER),          # unique(data$PARAMETER) si class(data$PARAMETER) == "character"
    +        function(para)
    +    {
    +        sapply(levels(data$LOT),         # unique(data$LOT) si class(data$LOT) == "character"
    +               function(lot)
    +           {
    +               mean(data[data$LOT == lot &
    +                         data$PARAMETER == para, "AVERAGE"])
    +           })
    +    })
               A          B          C
    a -0.7579081  0.9047863 -0.6085727
    b  0.5109891  0.7513256 -0.6888565
    c -0.7027887  2.3673368 -1.6334597
    d -0.1502221 -0.4466045 -0.9550799
    J'ai utilisé la fonction mean, mais si tu es certain de n'avoir qu'une valeur par paire PARAMETER-LOT, tu pourrais tout aussi bien utiliser sum.
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Ok ça marche, merci beaucoup

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

Discussions similaires

  1. [AC-2003] Transformer une base de données en application .EXE?
    Par fabian123 dans le forum Access
    Réponses: 4
    Dernier message: 19/12/2010, 04h15
  2. transforme une base de données Access en un fichier xml
    Par canada_bea dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 14/06/2009, 15h47
  3. Transformer une base de données Mysql en XML
    Par jrlulu dans le forum Outils
    Réponses: 5
    Dernier message: 12/12/2008, 19h23
  4. transformation d'une base de donnée vers SQL serveur
    Par kfmystik dans le forum Outils
    Réponses: 1
    Dernier message: 22/07/2008, 10h32
  5. transformation d une base de données en model UML
    Par kabacheo dans le forum Autres
    Réponses: 0
    Dernier message: 16/04/2008, 16h58

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