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 15/07/2008, 12h21   #1
Invité régulier
 
Étudiant
Inscription : janvier 2003
Messages : 26
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2003
Messages : 26
Points : 9
Points : 9
Envoyer un message via MSN à PhYx
Par défaut Remplacer toutes les données manquantes

Bonjour

Je travail sur une table dont la plupart des variables sont créées grace à une proc transpose et cela créé beaucoup de valeurs manquantes, ce qui est normal car il s'agit de en fait d'absence de dépense.

je voudrais donc remplacer toutes ces valeurs manquantes par des 0 et je voulais savoir si il existait un moyen direct de le faire sans avoir à mentionner toutes mes variables une à une.

je joints un exemple de proc transpose dont je me sers et qui créé autant de variables qu'il y a de valeurs différentes dans le champs REGPT_ACT

Code :
1
2
3
4
5
6
 
proc transpose DATA=sum_rgpt_ben out=MDP_rgpt_ben(DROP=_NAME_ _LABEL_) prefix=MDP_;
BY adh RNG;
id REGPT_ACT;
var MDP_RGPT_BEN;
run;
merci
PhYx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 13h01   #2
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 480
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 480
Points : 2 864
Points : 2 864
Salut.
Tu t'en sortiras facilement avec une étape Data et un ARRAY après ta proc Transpose.
Code :
1
2
3
4
5
6
7
8
 
DATA MDP_rgpt_ben ;
  SET MDP_rgpt_ben ;
  ARRAY valeur   MDP_: ;
  DO OVER valeur ;
    IF MISSING(valeur) THEN valeur = 0 ;
  END ;
RUN ;
Olivier
olivier.decourt est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 13h50   #3
Invité régulier
 
Étudiant
Inscription : janvier 2003
Messages : 26
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2003
Messages : 26
Points : 9
Points : 9
Envoyer un message via MSN à PhYx
exactement ce qu'il me fallait
merci !
PhYx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 14h44   #4
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Est ce qu'il n y a pas un risque de mettre un 0 dans un champ text?
ne faut il pas créer un vecteur de _numeric_?
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 14h58   #5
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 480
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 480
Points : 2 864
Points : 2 864
@ bahraoui :
Citation:
Est ce qu'il n y a pas un risque de mettre un 0 dans un champ text?
ne faut il pas créer un vecteur de _numeric_?
S'il y avait des variables de type caractère dont le nom commence par MDP_, l'Array génèrerait un message d'erreur (puisqu'on ne peut pas inclure dans un même array des variables numériques et caractères).
J'ai préféré me limiter à mdp_: pour reprendre au plus près les variables générées par Transpose, plutôt que de risque de prendre une autre variable dans un paquet comme _NUMERIC_. (adh RNG et REGPT_ACT sont peut-être numériques et, qui sait, contiennent peut-être des valeurs manquantes qu'on ne devrait pas remplacer par des zéros).

Olivier
olivier.decourt est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 15h25   #6
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Merci pour la précision. Je n'ai pas poussé mon analyse à ce point.
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
bahraoui 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 21h17.


 
 
 
 
Partenaires

Hébergement Web