Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 16h36   #1
Invité régulier
 
Inscription : mars 2011
Messages : 45
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 45
Points : 7
Points : 7
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 :
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 :
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
Imfafa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h46   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
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?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h52   #3
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
après si tu veux avoir deux tables selon une valeur d'une colonnes ( ou plus ).
essaies d'adapter ce qui suit :

Code :
1
2
3
4
5
 
DATA table1 table2;
SET sashelp.shoes;
IF region='Africa' then output table1; else output table2;
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 17h40   #4
Membre actif
 
Inscription : mars 2003
Messages : 149
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 149
Points : 162
Points : 162
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 :
1
2
3
DATA tab_sais (keep=&lst_var_sais) tab_Nsais (DROP=&lst_var_sais)
SET tab;
run;
la2002 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 18h22   #5
Invité régulier
 
Inscription : mars 2011
Messages : 45
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 45
Points : 7
Points : 7
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é.
Imfafa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 18h29   #6
Invité régulier
 
Inscription : mars 2011
Messages : 45
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 45
Points : 7
Points : 7
Et à votre attention, la sortie du test est la table RES çàd il faut appeler RES pour comparer F à F* .
Imfafa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h19.


 
 
 
 
Partenaires

Hébergement Web