FAQ SASConsultez toutes les FAQ

Nombre d'auteurs : 13, nombre de questions : 308, dernière mise à jour : 5 avril 2016  Ajouter une question

 

Cette F.A.Q., qui traite de tout type de questions portant sur l'outil SAS, a été réalisée à partir des contributions des membres des forums sas de developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs et grâce à SAS France qui a bien voulu nous donner accès à ses sources.

Si vous désirez contribuer à l'amélioration de cette F.A.Q., vous pouvez participer au billet de participation à l'enrichissement de la faq SAS , ou contacter le responsable SAS , ou contacter un des responsables de l'équipe Business Intelligence .

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe SAS de developpez.com remercie les contributeurs actuels : ash_rmy , bahraoui , datametric , fafabzh6 , Fleur-Anne.Blain , green_fr , oncle_pete , raf64flo , rastoix , s_a_m et steelspirit .

L'équipe SAS de developpez.com remercie aussi claudeLeloup et jacques_jean pour leurs relectures attentives de la F.A.Q. dans le but de chasser les fautes d'orthographes.


SommaireProgrammation sur SAS BASEManipulations sur plusieurs bases de données (3)
précédent sommaire suivant
 

Code sas : Sélectionner tout
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 t1; 
input t t12 t13; 
cards; 
1 2 1 
3 5 6 
5 6 7 
8 9 3 
4 5 3 
; 
run; 
  
DATA t2; 
input t t2; 
cards; 
1 2 
3 5 
7 8 
2 3 
4 5 
; 
run; 
  
proc sort DATA=t1 ; BY t ;run; 
proc sort DATA=t2 ; BY t ;run; 
DATA res; merge t1(IN=a) t2(IN=b); 
BY t; 
IF a AND b then var=1; 
else var=0; 
DROP t2; 
run;

Mis à jour le 27 mai 2008 bahraoui

Les tables doivent avoir la même structure.

Code sas : Sélectionner tout
1
2
3
DATA fusion; 
SET table_1 table_2... table_n;  
run;

Mis à jour le 27 mai 2008 bahraoui

Voici un exemple pour effectuer la mise à jour d'une table maitresse avec une autre table en gardant les index.

Code sas : Sélectionner tout
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
----------------------------------------------- 
  
/* La table maitresse. */ 
data BIG ; 
  X = 1 ;  Y = 'A' ;  output ; 
  X = 2 ;  Y = 'B' ;  output ; 
  X = 3 ;  Y = 'C' ;  output ; 
run ; 
  
/*Création l'index */ 
proc datasets lib=work nolist ; 
  modify BIG ; 
    index create X ; 
quit ; 
  
/* Depuis la table SMALL, 
   L'observation avec X=3 doit être mise à jour, 
   celle avec X=999 est une nouvelle observation */ 
data SMALL ; 
  X = 3 ;  Y = 'Z' ;  output ; 
  X = 999 ;  Y = 'Z' ;  output ; 
run ; 
  
/*Creation l'index */ 
proc datasets lib=work nolist ; 
    modify SMALL ; 
    index create X ; 
quit ; 
  
/* Mise à jour de la table "maitre". l'index est conservé... */ 
data BIG; 
    set SMALL(rename=(Y=tY)); 
    by X; 
    modify BIG key=X; 
    if _iorc_=%sysrc(_sok) then do; 
          Y=tY; 
          _error_=0; 
          put 'in replace'; 
          replace BIG; 
    end; 
    else if (%sysrc(_dsenom)) then do; 
          _error_=0; 
          Y=tY; 
          put 'in insert'; 
          output BIG; 
    end; 
run; 
  
-----------------------------------------------

Mis à jour le 10 octobre 2008 sas

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2020 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.