Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Débutez
Débutez Forum concentrant les premières questions que l'on se pose en tant que débutant
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 19/12/2011, 17h09   #1
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 17
Points : 17
Par défaut Modifier les valeurs d'un vecteur

Bonjour,

Je suis débutant en SAS depuis 2 semaines et je voulais savoir comment modifier les valeurs d'un vecteur. En particulier, je veux remplacer la valeurs L du vecteur par la valeur numérique 1.

Code :
1
2
3
4
5
6
7
8
 
DATA destination5;
SET Projet1;
Keep Region;
do i=1 TO 600;
IF Region(i)="L" THEN Region(i)=1;
END;
run;
J'ai l'impression que Region(i) n'est pas reconnu.

Merci d'avance
bsangoku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 17h22   #2
Membre du Club
 
Homme Jérémy Noël
Consultant Support Client SAS
Inscription : mai 2011
Messages : 38
Détails du profil
Informations personnelles :
Nom : Homme Jérémy Noël
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant Support Client SAS
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 38
Points : 58
Points : 58
Bonjour,

SAS traite les observations de manière séquentielle.
Ainsi, si vous avez 600 observations comme je semble le comprendre, la ligne suivante devrait convenir:

Code :
IF Region="L" then region_num=1
En effet, une variable est définie pour un type alors elle ne peut pas devenir numérique. Vous pouvez ensuite la renommer:

Cdt
Frajen
frajen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 18h04   #3
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 17
Points : 17
En fait, ce que je cherche à faire c'est donner à tous les L une valeur numérique 1 par exemple...
bsangoku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 10h36   #4
Membre du Club
 
Homme Jérémy Noël
Consultant Support Client SAS
Inscription : mai 2011
Messages : 38
Détails du profil
Informations personnelles :
Nom : Homme Jérémy Noël
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant Support Client SAS
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 38
Points : 58
Points : 58
Bonjour,

Le programme suivant réalise les tâches que vous souhaitez obtenir

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DATA test;
input region $1;
cards;
L 
M 
N 
L 
L 
M 
L 
M 
;run;
 
DATA test1 (RENAME=(region_num=Region));
SET test;
IF region="L" then region_num=1;
DROP region;
run;
Cdt,
Frajen
frajen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 13h34   #5
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 17
Points : 17
Merci!!!
bsangoku 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 20h18.


 
 
 
 
Partenaires

Hébergement Web