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 03/03/2008, 10h27   #1
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 167
Points : 33
Points : 33
Par défaut renomer un libellé

Je vous expique j'ai un champ qui est lib_fic
exemple fnac lille,fnac toto,la redoute tutu, la redoute tooto
Je voudrais crée un champ champ pour ensuite regroupé mes groupe de libellé
Par exemple fnac lille,fnac roubaix alors fnac tous simplement dans une nouvelle variable.J'ai éssayé d'utlisiter une condition aves l'opératuer like.mais cela ne marche pas.
merci de bien vouloir m'aidé.
mioke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 10h33   #2
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 810
Points : 4 810
Bonjour,
N'ayant pas trop compris ce que tu veux faire .. pourrais tu mettre la forme précise de ta table ainsi que le résultat que tu veux.

Par exemple :

Table entrée
Var1 Var2
FNAC 10
REDOUTE 20

Table sortie désirée
Var1 Var2 Var3
Fnac 10 Prix faible
Fnac 20 Prix intéressant

Fafabzh
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 10h39   #3
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 167
Points : 33
Points : 33
je vais m'xpliquer :J'ai plusieur libellé mais certain libellé se rensemble et je voudrais leur donné le même nom donc exemple:
Lib_fic
CLARITAS DONATEURS PENSANT DONNER DANS LES 12 PROCHAINS MOIS.
CLARITAS DONATEURS A AU MOINS 2 TYPES DE CAUSES.
MAGAZINE 30 MILLIONS D AMIS
REPOUSSOIR 30 MILLIONS D AMIS

Donc
lib fisc
CLARITAS DONATEURS PENSANT DONNER.... Libellé final :Claritas
CLARITAS DONATEURS A AU MOINS 2 TYPES .... Libellé final :claritas
MAGAZINE 30 MILLIONS D AMIS...Libellé final :30 million d'amis
REPOUSSOIR 30 MILLIONS D AMIS...Libellé final :30 million d'amis
mioke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 10h48   #4
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 810
Points : 4 810
En gros tu veux sélectionner la partie de ton libellé qui t'intéresse pour pouvoir ainsi créer une nouvelle variable synthétisant l'information contenue dans le libellé.

De la même manière que précédemment :
http://www.developpez.net/forums/sho...d.php?t=500649
Ton information d'intérêt arrive t'elle aléatoirement dans ton libellé?
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 10h50   #5
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 167
Points : 33
Points : 33
exactement

je sais n'est pas tous a fait la même chose parceque il n'ont pas la même position et pas la même longeur.

moi j'utulise ceci:
Code :
1
2
3
4
5
6
 
DATA extr.referentiel2;
SET extr.referentiel2;
IF rep= LIKE "CLARITAS" then libelle='ffac';
else libelle='ok';
run;
Je vais faire ci le mot claritas est présent dans le lib_fisc alors il l'appele claritas.
mioke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 11h13   #6
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 810
Points : 4 810
Je pense qu'à l'aide de la fonction scan et d'une boucle tu peux déjà obtenir un premier résultat intéressant:

Code :
1
2
3
4
5
6
7
8
9
10
%MACRO test;
DATA t1; 
SET t;
%Do i = 1 %TO 20;
IF scan(t,&i," ")="MILLIONS" THEN lib="MILLIONS";
IF scan(t,&i," ")="redoute" THEN lib="redoute";
%END;
run;
%MEND test;
%test;
Une solution peut être encore plus intéressante mais sensible aux erreurs de saisie :
Code :
1
2
3
4
5
6
7
8
9
10
11
%MACRO test2;
DATA t1; 
SET t;
%LET tampon;
%Do i = 1 %TO 20;
IF INDEX(t,"30 MILLIONS D AMIS")NE 0 THEN LIB="30 MILLIONS D AMIS";
IF INDEX(t,"la redoute")NE 0 THEN lib="la redoute";
%END;
run;
%MEND test2;
%test2;
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 13h40   #7
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 167
Points : 33
Points : 33
je te remerci j'ai trouvé une solution
J'ai trié mon fichier sur les libéllé pui j'ai fais une proc print sur le libellé

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
proc print DATA=extr.referentiel2;
BY lib2;
var lib_fic;
WHERE substr(lib_fic,1,1)='B'; 
run;
 
et pout terminer je fais mon étape DATA.
 
DATA extr.referentiel2;
SET extr.referentiel2;
length $30;
IF INDEX (lib_fic,'ABACUS')>0 then libelle='ABACUS';
	else IF INDEX (lib_fic,'ABBAYE')>0 then libelle='ABBAYE';
	else IF INDEX (lib_fic,'ABEl')>0 then libelle='ABEL_FRANKLIN';...
mioke est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h13.


 
 
 
 
Partenaires

Hébergement Web