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 des lignes en colonnes


Sujet :

R

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Transformer des lignes en colonnes
    Bonjour, je souhaiterai regrouper par colonnes toutes les lignes référant au même individu. Ce dernier peut-être identifié par plusieurs codes. J'ai en entrée tous les codes référant à une même personne 2 à 2.Ma problématique est assez difficile à expliquer, c'est pourquoi ci dessous apparait un petit exemple.

    Par exemple :
    L'individu xy est identifié par les codes 1,2,3 et 5. 1 renvoie à xy tout comme 2, 3 et 5. En fait j'ai des redondances de codes individus ...
    L'individu zt est identifié par les codes 4 et 6
    L'individu
    Code 1 - Code 2
    1 2
    2 3
    2 5
    4 6
    7 8
    8 9

    Je souhaiterai donc obtenir :
    Code 1 - Code 2 - Code 3 - Code 4
    1 2 3 5
    4 6
    7 8 9

    Merci de votre aide.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Salut,
    En partant de tes données j'ai bricolé ce bout de 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    code1<-c(1,2,2,4,7,8)
    code2<-c(2,3,5,6,8,9)
     
    #sauvegarde puisqu'on va ecraser dans le code
    codea<-code1
    codeb<-code2
     
    i=2
    individus<-list()
    individus[[1]]<-"initialisation"
    while(!is.na(individus[[i-1]])){
     
    individus[[i]]<-codea[1]
    for(j in 1:max(length(unique(codea)),length(unique(codeb)))){
    individus[[i]]<-c(individus[[i]],codeb[codea %in% individus[[i]]])
    individus[[i]]<-c(individus[[i]],codea[codeb %in% individus[[i]]])
    }
    individus[[i]]<-unique(individus[[i]])
    codea<-codea[!codeb %in% individus[[i]]]
    codeb<-codeb[!codeb %in% individus[[i]]]
    i=i+1
     
    }
     
    individus<-individus[-1]
    n<-length(individus)
    individus<-individus[-n]
    individus
    Donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    > individus
    [[1]]
    [1] 1 2 3 5
     
    [[2]]
    [1] 4 6
     
    [[3]]
    [1] 7 8 9
    Ca devrait marcher quelque soit le nombre d'individus.
    La vitesse de l'algorythme est surement améliorable.

Discussions similaires

  1. Requête SQL, transformer des lignes en colonne
    Par gadget2 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/11/2010, 20h50
  2. [Datastage Server 7.5] Transformer des lignes en colonnes
    Par alpachico dans le forum DataStage
    Réponses: 1
    Dernier message: 10/07/2009, 16h25
  3. Transformer des lignes en colonnes
    Par Gomoz dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/02/2009, 17h55
  4. Transformer des lignes en colonne DataStage
    Par bnet2 dans le forum DataStage
    Réponses: 4
    Dernier message: 09/12/2008, 10h07
  5. Transformer des lignes en colonnes
    Par ofinot dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 30/07/2008, 11h45

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