Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS STAT
SAS STAT Forum d'entraide sur les fonctionnalités liées à la statistique sur SAS : statistique descriptive, test, régression, classification
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 01/06/2011, 09h35   #1
Invité régulier
 
Inscription : mars 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 41
Points : 5
Points : 5
Par défaut Proc means sur une partie de la base

Bonjour,

Je cherche à connaître la médiane, moyenne, max et min d'une série de valeur.
Je possède l'année de naissance d'une population féminine et l'âge à laquelle elles ont eu leur 1er enfant (je suis sur une base de femmes remontant à 1950 ).

Je voudrais comparer l'âge au premier enfant selon les générations. Voir par exemple, pour les femmes nées avant 1980 à quelle âge elles ont leur 1er enfant, ou entre 1980 et 1990 par exemple.

Code :
1
2
3
4
5
6
proc means DATA=x.varsas4 mean median min max;
var agea1;
BY annee;
WHERE annee < 1980;
format agea1 agea;
run;
Avec agea1 = age au premier enfant / annee = année de naissance

Ce programme ne fonctionne pas!! Pouvez-vous m'aider sur ce point?

Voici l'erreur SAS que je n'arrive pas à comprendre

Citation:
ERROR: Data set X.VARSAS4 is not sorted in ascending sequence. The current by-group has annee = 1979
and the next by-group has annee = 1954.
Merci
ratm13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 09h45   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Bonjour Ratm13,
Faut trier la table si tu utilises la clause BY (la log ne peut pas faire mieux), soit tu utilises CLASS à la place de BY, dans ce cas tu n'as pas besoin de faire un trie.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 09h47   #3
Invité régulier
 
Inscription : mars 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 41
Points : 5
Points : 5
OK il fallait que j'utilise un PROC SORT.

Par contre il me sort des résultats pour chaque année et moi je veux pour l'ensemble des années. Par exemple si je dit année < 1980, je veux qu'il fasse l'âge moyen de toutes les femmes nées avant 1980. Or il me sort pour chaque année 1950,1951... ces stats!!
ratm13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 09h48   #4
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Donc le BY n'est pas indispensable dans ton cas
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 09h48   #5
Invité régulier
 
Inscription : mars 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 41
Points : 5
Points : 5
Merci Megamind je viens de comprendre par moi-même la signification de l'erreur!! pfff je progresse
ratm13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 09h53   #6
Invité régulier
 
Inscription : mars 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 41
Points : 5
Points : 5
J'ai bien compris pour where annee < 1980.

Si je veux que la décennie de 1980 à 1990, je vois pas comment formuler cela!!
ratm13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 09h56   #7
Invité régulier
 
Inscription : mars 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 41
Points : 5
Points : 5
where annee > 1980 and annee < 1990;



Tout simplement....

Merci beaucoup pour ton aide Megamind à chaque fois tu répond présent
Du coup je me rend vite fait compte de mes erreurs!!
ratm13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 09h57   #8
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
ça devait marcher ça:

Code :
WHERE variable BETWEEN value_inf AND value_sup ;
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 09h59   #9
Invité régulier
 
Inscription : mars 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 41
Points : 5
Points : 5
Ouai ça fonctionne aussi !
ratm13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 10h00   #10
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Le fait d'expliquer à quelqu'un d'autre ce qu'on veut, du coup on comprend...
C'est comme chez alcoolique anonyme
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h54.


 
 
 
 
Partenaires

Hébergement Web