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 :

Tableau croisé de "valeur"


Sujet :

R

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Tableau croisé de "valeur"
    Bonjour,

    Imaginons le tableau «base» :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    colone1=c("d","d","b","b","a","a")
    colone2=c("var1","var2","var1","var2","var1","var2")
    colone3=c(5,2,4,8,9,7)
    base=data.frame(colone1,colone2,colone3)
    base
    (j'ai utilisé les """"" pour mettre en forme le tableau)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     """    colone1 colone2 colone3
    1"""""       d """""       var1 """""          5
    2"""""       d """""       var2 """""          2
    3"""""       b """""       var1 """""          4
    4"""""       b """""       var2  """""         8
    5"""""       a """""       var1 """""          9
    6"""""       a """""       var2  """""         7
    Comment programmer R pour obtenir le tableau croisé de valeurs suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    """	var1"	var2
    a"""""	9"""""	7
    b"""""	4"""""	8
    d"""""	5"""""	2
    Cordialement

  2. #2
    Membre confirmé
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    HTH

    Vincent

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    colone1=c("d","d","b","b","a","a")
    colone2=c("var1","var2","var1","var2","var1","var2")
    colone3=c(5,2,4,8,9,7)
    base=data.frame(colone1,colone2,colone3)
    base
      colone1 colone2 colone3
    1       d    var1       5
    2       d    var2       2
    3       b    var1       4
    4       b    var2       8
    5       a    var1       9
    6       a    var2       7
     
    table(base$colone1,base$colone2)
     
    table(base$colone1,base$colone2,base$colone3)
    , ,  = 2
     
     
        var1 var2
      a    0    0
      b    0    0
      d    0    1
     
    , ,  = 4
     
     
        var1 var2
      a    0    0
      b    1    0
      d    0    0
     
    , ,  = 5
     
     
        var1 var2
      a    0    0
      b    0    0
      d    1    0
     
    , ,  = 7
     
     
        var1 var2
      a    0    1
      b    0    0
      d    0    0
     
    , ,  = 8
     
     
        var1 var2
      a    0    0
      b    0    1
      d    0    0
     
    , ,  = 9
     
     
        var1 var2
      a    1    0
      b    0    0
      d    0    0
    En utilisant "table" on se rapproche du résultat mais le tableau est dissocié en plusieurs "matrices".

    Il doit forcément y avoir une fonction pour faire un tableau croisé dynamique de valeurs, c'est-à-dire sans opération (somme, moyenne, ...) ?

    Cordialement

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 339
    Points
    339
    Par défaut
    Hello,

    voici une proposition de solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    c1   <- c("d","d","b","b","a","a")
    c2   <- c("var1","var2","var1","var2","var1","var2")
    c3   <- c(5,2,4,8,9,7)
    base <- data.frame(c1,c2,c3)
    xtabs(c3~c1+c2,base)
    Output:
    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
     
    > base
      c1   c2 c3
    1  d var1  5
    2  d var2  2
    3  b var1  4
    4  b var2  8
    5  a var1  9
    6  a var2  7
     
    > xtabs(c3~c1+c2,base)
       c2
    c1  var1 var2
      a    9    7
      b    4    8
      d    5    2
    Bonne continuation

  5. #5
    Membre confirmé
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    En reprenant votre code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tapply(base$colone3, list(base$colone1, base$colone2), c)
    HTH

    Vincent

Discussions similaires

  1. tableau croisé dynamique et valeur nulle
    Par afssaLERH dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2008, 14h18
  2. tableau croisé dynamique et valeur nulle
    Par afssaLERH dans le forum Excel
    Réponses: 1
    Dernier message: 03/11/2008, 18h18
  3. [CR XI]Tableau croisé dynamique et valeurs = 0
    Par Coocky10 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 05/12/2007, 15h18

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