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
    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

  2. #2
    Membre expérimenté
    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 _<img src="images/smilies/icon_smile.gif" border="0" alt="" title=":)" class="inlineimg" /> ;
    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
    Merci beaucoup, je vais essayer ça

###raw>template_hook.ano_emploi###