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

SAS Base Discussion :

Créer des nouvelles colonnes a partir des valeurs d'une colonne [DATA]


Sujet :

SAS Base

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 43
    Points
    43
    Par défaut Créer des nouvelles colonnes a partir des valeurs d'une colonne
    Bonjour à tous,
    J'ai une table de base qui a cette forme ci :
    ID Col1
    1 50008,50050
    2 50050
    3 50008
    4 50012,50050
    5 50008,50012,50050

    Et je voudrais avoir cette forme ci :
    ID COL1_50008 COL1_50012 COL1_50050
    1 Y "" Y
    2 "" "" Y
    3 Y "" ""
    4 "" Y Y
    5 Y Y Y
    En sachant que dans la col1 il peut y avoir un nombre important de valeurs et qu'elles peuvent varier d'un mois à l'autre donc je ne peux pas "hardcoder" les différentes valeurs
    Quelqu'un aurait il une bonne idée pour me donner un coup de main là dessus ?
    Merci d'avance et excellente journée

  2. #2
    Membre éprouvé
    Avatar de steelspirit
    Homme Profil pro
    SAS discute
    Inscrit en
    Janvier 2008
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SAS discute
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 472
    Points : 916
    Points
    916
    Par défaut
    Bonjour, comme toujours il y a plusieurs solutions.

    En voici une : l'idée est de dupliquer col1 (une valeur par observation) et de faire un transpose.

    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
     
    data test;
    	infile cards dlm=tab;
    	input id col $50.;
    cards;
    1 	50008,50050
    2 	50050
    3 	50008
    4 	50012,50050
    5 	50008,50012,50050
    run;
     
    data test2;
    	set test;
    	i=1;
    	do while(scan(col,i,',') ne "");
    		colname=scan(col,i,',');
    		value="Y";
    		i=i+1;
    		output;
    	end;
    run;
    proc transpose data=test2 out=test3 prefix=col_;
    	by id;
    	var value;
    	id colname;
    run;
    Steel

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 43
    Points
    43
    Par défaut
    Merci 1000 fois !!!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/03/2015, 11h46
  2. Calcul dans une colonne a partir des donnees du gridview
    Par Mougain's dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 25/11/2014, 10h53
  3. [XL-2010] Créer des liens hypertextes automatiquement sur les valeurs d'une colonne
    Par Mikayel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/10/2014, 15h22
  4. [XL-2010] Colorer des lignes en fonction de la valeur d'une colonne
    Par antoninr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2013, 13h33
  5. Réponses: 0
    Dernier message: 09/07/2011, 21h52

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