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 :

Séparer les variables d'une table


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut Séparer les variables d'une table
    Bonjour,
    J'ai une table TAB qui contient 2000 variables, certaines sont saisonnières.
    Aprés un test de saisonnalité qui affiche le résultat dans une table RES, j'aimerais mettre les saisonnieres dans une table TB_SAIS les autres dans TB_Nsais.
    comment ferais-je????
    Sachant que la procedure suivante: (F > < 2 ===> condition du test)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    proc sql; 
    select F from res 
    IF (F > 2) 
    then select Pdt7  into TB_sais from Afef.TAB
    ELSE
    select  Pdt7  into TB_nsais from TAB
    END;
    run;
    Et même j'ai essayé la suivante: ( j'ai crée une table dep contenat la variable en question)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data fusion;
    set res;
    if (F > 2) then 
    merge TB_sais dep; 
    else 
    merge  TB_nsais dep; 
    run;

    et aucune m'a donné le résultat desiré ainsi le bouclage approprié (2000 variables)

    Avez-vous idée???
    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Bonjour,
    1-On ne peut pas utilisé le IF dans la proc SQL ( en tout les cas pas de cette façon).En SQL il a y du WHERE et non pas du IF.

    2- Je ne comprends pas la structure de ta table. Tu peux expliquer un peu plus?

  3. #3
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    après si tu veux avoir deux tables selon une valeur d'une colonnes ( ou plus ).
    essaies d'adapter ce qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data table1 table2;
    set sashelp.shoes;
    if region='Africa' then output table1; else output table2;
    run;

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 161
    Points : 224
    Points
    224
    Par défaut
    Comment sont stockées tes variables saisonnières ?

    Sous forme d'une macro variable?

    %let lst_var_sais=var1 var3 var4 var 8;

    Si c'est le cas, c'est assez simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Data tab_sais (keep=&lst_var_sais) tab_Nsais (drop=&lst_var_sais)
    set tab;
    run;

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Peut être je me suis mal exprimée: la table originale comporte toutes les variables Pdt1..............Pdt2000.
    Un test de saisonnalité me permet de savoir si Pdti est sainonnier ou pas ( il affiche la statistique de fisher Fi à comparer par F*=2).
    Je cherche une boucle (i de 1 à 2000): si (F > 2) on ajoute Pdti à la table SAIS
    sinon (F < 2), on l'ajoute à la table NON_SAIS. avec F est la fisher de Pdti.
    J'espere que j'aie bien expliqué.

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Et à votre attention, la sortie du test est la table RES çàd il faut appeler RES pour comparer F à F* .

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/07/2013, 17h57
  2. Réponses: 6
    Dernier message: 08/02/2012, 14h24
  3. Renommer toutes les variables d'une table
    Par Cannaould dans le forum Débutez
    Réponses: 3
    Dernier message: 27/01/2012, 12h27
  4. declarer les variables d une table
    Par blaise4714 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/05/2009, 11h31
  5. Etat - séparer les champs d'une table
    Par Bragon12 dans le forum IHM
    Réponses: 6
    Dernier message: 11/08/2008, 15h19

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