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 :

Répéter des valeurs d'une ligne à l'autre


Sujet :

SAS Base

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

    Informations forums :
    Inscription : août 2008
    Messages : 46
    Points : 41
    Points
    41
    Par défaut Répéter des valeurs d'une ligne à l'autre
    Bonjour,
    j'importe un fichier Excel dont les données sont comme dans le fichier Input.xlsx



    et je voudrais que lorsque le NumFBS est vide, dans ma table NumFBS, Frais1 , Frais2, Remise et Frais_Annuel garde leur valeur, jusqu'à ce qu'on change de NumFBS comme dans Input modifié.xlsx

    J'essaie avec le lag et le first , mais il doit me manquer un truc car le lag me retourne des valeurs vides ...

    Merci d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    janvier 2013
    Messages
    451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : janvier 2013
    Messages : 451
    Points : 1 485
    Points
    1 485
    Par défaut
    Bonjour,
    Je te propose cette solution. Il faut d'abord découper ta table "Input" en blocs (en groupes) selon la présence et l'absence des données manquantes dans la variable Valeur1, en créant la variable (Grp). Cette variable sera utilisée par la suite:
    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
     
    data Input_Grp ;
    set Input ;			
    if     missing(val1) then do ; m=0 ;  n+1 ;	end ;
    if not missing(val1) then do ; n=0 ;  m+1 ;	end ;
    if n=1 or m=1        then grp+1 ;
    run ;	 
     
    Data Output (drop= m n _:) ;
    Do  Until (last.grp) ;
    Set Input_Grp ;
    by grp notsorted ; 
    if NumFbs and Val1 then do ;	 
    _NumFbs=NumFbs ; _Frais1=Frais1 ; _Frais2=Frais2 ; _Remise=Remise ;	
    		   end ;	 
    if missing(NumFbs) then do ;	 
    NumFbs=_NumFbs ; Frais1=_Frais1 ; Frais2=_Frais2 ; Remise=_Remise ;	
    		  end ;	  
    output ;
    End ;	 	  
    run ;
    Bon courage
    Ward

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

    Informations forums :
    Inscription : août 2008
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    Merci beaucoup, je vais essayer ça

Discussions similaires

  1. Recuperation des valeur d'une ligne-DetailView
    Par usermap dans le forum Débuter
    Réponses: 0
    Dernier message: 30/03/2009, 17h43
  2. Copie conditionnelle des valeurs d'une ligne
    Par frisette68 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/02/2008, 03h07
  3. problème à passer des valeurs d'une form à l'autre
    Par gibea00 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/08/2007, 14h45
  4. passer des valeurs d'une page à l'autre
    Par casaoui dans le forum ASP.NET
    Réponses: 8
    Dernier message: 13/06/2007, 18h55
  5. Réponses: 13
    Dernier message: 26/06/2006, 13h10

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