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 10/01/2012, 23h35   #1
Invité de passage
 
Femme
Chargé d'affaire
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Espagne

Informations professionnelles :
Activité : Chargé d'affaire

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 4
Points : 4
Par défaut Créer echantillon avec pourcentage observations

Bonjour,

j'ai une table d'entrée qui contient 10 observations et je veux créer une table de sortie contenant 10% des observations de la table d'entrée. Comment faire?
ALEA001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 09h57   #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,

Je n'ai pas eu le temps de voir comment faire en une seule étape data mais en deux cela pourrait donner:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DATA TABLE;
input x @@;
cards;
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
;run;
 
 
DATA _null_;
SET TABLE end=dernier;
t+1;
IF dernier; 
call symputx('limite',t);
run;
 
DATA final;
SET TABLE;
IF _N_ le int(&limite/10);
run;
Ce code fonctionne, il est testé.

Cordialement,
Jérémy NOEL
frajen est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 11/01/2012, 10h27   #3
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
Bonjour, ta version frajen ne selectionne pas n'importe quel dixieme, seulement le premier.

On peut se baser une une distribution uniforme sur [0;1] et ne retenir que les observations inferieures a 0.1 - ou encore (1-0)/10. On retiendra ENVIRON un dixieme des observations suivant les resultats de la selection aleatoire.

Le code est volontairement non optimise pour faire apparaitre les valeurs et etapes de programmation

Code :
1
2
3
4
5
6
7
8
9
10
11
12
DATA FULL;
	do I=1 TO 100;
		VAR=ranuni(-3);
		output;
	end;
run;
 
DATA DIXIEME;
	SET FULL;
 
	IF VAR<0.1;
run;
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/01/2012, 10h31   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
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 467
Points : 2 828
Points : 2 828
Ou avec la proc SURVEYSELECT, il y a une option SAMPRATE qui vaudrait 0.1 pour l'échantillonnage au 1/10e ici.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 21h50   #5
Invité de passage
 
Femme
Chargé d'affaire
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Espagne

Informations professionnelles :
Activité : Chargé d'affaire

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 4
Points : 4
j'ai utilisé la solution 2 qui marche bien, merci beaucoup pour vos réponses.
ALEA001 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 22h44.


 
 
 
 
Partenaires

Hébergement Web