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 :

Utiliser une table de paramétrage sur SAS


Sujet :

SAS Base

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Utiliser une table de paramétrage sur SAS
    Bonjour,

    Je débute sur SAS et je cale sur un problème qui je pense serait assez simple pour quelqu’un de plus expérimenté:

    Je possède 2 tables en entrée :

    -table 1

    Var1
    0.5
    1.6
    2.4
    3.5
    2.6
    1.2
    0.7
    0.6

    Table2 que je souhaite utiliser comme table de paramétrage permettant de me donner un résultat(variable impact) en fonction d’où se situe la var1

    Borne_inf borne_sup impact
    0 1 10
    1 2 20
    2 3 30
    3 4 40

    Ainsi, la 1ère valeur de la table 1 devrai donner comme impact 10 car elle est comprise entre 0 et 1.

    La table de résultat devrait me donner :

    Table3 :
    Impact
    10
    20
    30
    40
    30
    20
    10
    10

    Merci d'avance pour ceux qui pourront m'aider

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Dataminer
    Inscrit en
    Septembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Dataminer
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 29
    Points : 38
    Points
    38
    Par défaut
    Hello checkin,

    J'ai une solution pour toi en passant par du sql :

    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 table1;
    	input var1;
    datalines;
    0.5
    1.6
    2.4
    3.5
    2.6
    1.2
    0.7
    0.6
    ;
     
    data table2;
    	input borne_inf borne_sup impact;
    datalines;
    0 1 10
    1 2 20
    2 3 30
    3 4 40
    ;
     
    proc sql;
    	create table table3 as
    	select impact
    	from table1 t1 inner join table2 t2
    	on ceil(t1.var1) = t2.borne_sup
    	;
    quit;
    Ce n'est sûrement pas la meilleure solution qui existe mais au moins elle fonctionne pour ton exemple.
    Tu pourrais aussi passer par un merge mais cela nécessiterait davantage de retraitements et la création d'une variable commune.

    N'hésites pas si tu as des questions

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse.

    J'ai eu le temps de trouver une solution:


    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
    31
    32
    data table1;
    input Var1;
    cards;
    0.5
    1.6
    2.4
    3.5
    2.6
    1.2
    0.7
    0.6
    ;
    run;
     
    data table2;
    input Borne_inf borne_sup impact;
    cards;
    0 1 10
    1 2 20
    2 3 30
    3 4 40
    ;
    run;
     
    /*Jointure des deux tables 1 et 2 pour récupérer uniquement l'impact de la table2 (T2)*/
    proc sql;
    create table table3 as
    select T1.*, T2.impact
    from  table1 as T1
    left join  table2 as T2
    on T2.Borne_inf <= T1.Var1 <=T2.borne_sup; /*ta clé de jointure*/
    quit;

Discussions similaires

  1. utiliser une table ou une vue
    Par ljoly dans le forum Oracle
    Réponses: 14
    Dernier message: 05/07/2006, 15h49
  2. utiliser une table paradox en meme temps
    Par kalou26 dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/06/2006, 18h04
  3. [18F452] Utiliser une Table sur un 18F
    Par MCASM dans le forum Autres architectures
    Réponses: 2
    Dernier message: 18/04/2006, 22h48
  4. lier une table Sql Server sur Access
    Par JerBi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/01/2006, 16h27
  5. Réponses: 5
    Dernier message: 29/09/2005, 09h35

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