1. #1
    Nouveau membre du Club
    Inscrit en
    mars 2012
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : mars 2012
    Messages : 40
    Points : 39
    Points
    39

    Par défaut "recoller" des valeurs dans une table

    Bonjour,

    le titre est surement peu précis par rapport à mon problème, que je m'en vais vous détailler.

    J'ai une table qui ressemble à ça :

    Nom : tab1.PNG
Affichages : 31
Taille : 10,4 Ko

    et je veux supprimer tous les valeurs manquantes et "recoller" toutes les valeurs à gauche - sauf pour la première ligne.
    Il y a 2 valeurs manquantes par ligne, j'ai donc deux colonnes en moins à la fin (on se moque de la première ligne) :

    Nom : tab2.PNG
Affichages : 30
Taille : 8,7 Ko

    J'ai réussi à faire tourner une macro SAS pour le faire, mais elle me semble un peu compliqué, alors je me demandais s'il y avait des solutions beaucoup plus simple?!

    Merci

    Niaboc

  2. #2
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    janvier 2012
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : janvier 2012
    Messages : 311
    Points : 1 096
    Points
    1 096

    Par défaut

    Bonjour,

    Rapidement en utilisant des array, mais à améliorer largement ...

    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
    data test;
    infile cards dlm="," dsd missover;
    input _1 :8. _2 :8. _3 :8. _4 :8. _5 :8. _6 :8. _7 :8.;
    cards;
    10,4,7,100,2,5,.
    .,.,7,100,2,5,14
    .,4,.,100,2,5,17
    10,.,.,100,2,5,11
    .,4,7,.,2,5,110
    10,.,7,.,2,5,104
    10,4,.,.,2,5,107
    ;
    run;
     
     
    data test2 (drop= i j k);
    set test;
    array temp(7) _:;
    array _(7) 8;
    j=1;
    do i=1 to dim(temp);
    	if temp(i) ne . then do;
    		_(j) = temp(i);
    		j + 1;
    	end;
    end;
    if j < i then do k = j to i-1;
    	_(k) = .;
    end;
    run;
    Bon courage

  3. #3
    Nouveau membre du Club
    Inscrit en
    mars 2012
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : mars 2012
    Messages : 40
    Points : 39
    Points
    39

    Par défaut

    Merci pour le code qui est plus simple et plus adaptatif que le mien!

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

Discussions similaires

  1. [WD14] Encoder des valeurs dans une table à partir de champ de saisie
    Par LuckyLuke56 dans le forum WinDev
    Réponses: 3
    Dernier message: 28/05/2010, 14h51
  2. insérer des valeur dans une table via un formulaire
    Par horkets dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 18/07/2008, 20h47
  3. Liste deroulante et inscription des valeurs dans une table
    Par stefon dans le forum PHP & MySQL
    Réponses: 5
    Dernier message: 24/11/2006, 15h31
  4. Macro - Ecrire des valeurs dans une table
    Par gojaru dans le forum Access
    Réponses: 2
    Dernier message: 17/08/2006, 13h54

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