IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Récuperer des observation aléatoire dans une table


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 155
    Points : 37
    Points
    37
    Par défaut Récuperer des observation aléatoire dans une table
    bonjour,

    Bonjour,si vous pouvé m’aidez !!
    Je travail sur sas guide version 4.3 J’ai une table de 100000 ligne et 30 colonne, je veux récupérer 20 ligne aléatoirement, sachant que je peux pas utiliser la proc surveyselect car j’ai pas de licence sas stat, je cherche un programme ou autre qui peut me faire ça.
    si vous pouvez m’aider svp !!

  2. #2
    Membre habitué

    Homme Profil pro
    Consultant Support Client SAS
    Inscrit en
    Mai 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 94
    Points : 180
    Points
    180
    Par défaut
    Bonjour,

    Je te propose le programme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DATA TEST;
           SET TA_TABLE;
    	do I=1 TO 100000;
    		VAR=ranuni(-3);
    		output;
    	end;
    run;
    PROC SORT DATA=TEST OUT=TEST1;
    BY VAR;
    RUN;
     
    DATA FINAL;
    	SET TEST1 (obs=20);
     run;
    Cordialement
    Jérémy NOEL

  3. #3
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    je pense que le programme que tu propose selectionne les première obs. mais le problème est de selectionné autres observation que les première

  4. #4
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    La solution de frajen semble bonne. Il genere aleatoirement un nombre dans un nouvelle variable pour chaque observation, puis classe par ordre croissant de cette variable, et retiens les 20 premieres observations. Tu peux voir que ce ce n'est pas les 20 premieres observations de la table initiale en regardant les valeurs de I retenues.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 155
    Points : 37
    Points
    37
    Par défaut
    merci , je vais léssayé toute suite je vous tien au couran

  6. #6
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Attends;
    avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DATA TEST;
           SET TA_TABLE;
    	do I=1 TO 100000;
    		VAR=ranuni(-3);
    		output;
    	end;
    run;
    tu vas exploser tes calcules, voir saturé ton serveur.

  7. #7
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    essaies ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
     
    data test1;
    set ta_table;
    var= ranuni(-3);
    run;
     
     
    proc sort data=test1 out= test2;
    by var;
    run;
     
     
    data finale  ;
    set test2 (obs=20 drop =var );
    run;

  8. #8
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Ou en SQL. L'avantage c'est que tu peux aussi le faire sous forme de requête dans SEG.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROC SQL OUTOBS=20 ;
      CREATE TABLE work.ech20 (DROP=alea) AS
        SELECT *, RANUNI(1) AS alea
        FROM ta_table
        ORDER BY alea
      ;
    QUIT ;
    Surtout éviter d'exécuter le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DATA TEST;
           SET TA_TABLE;
    	do I=1 TO 100000;
    		VAR=ranuni(-3);
    		output;
    	end;
    run;
    de Jérémy qui va te multiplier la taille de ta table par 100 000 !

  9. #9
    Membre habitué

    Homme Profil pro
    Consultant Support Client SAS
    Inscrit en
    Mai 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 94
    Points : 180
    Points
    180
    Par défaut
    Il est vrai que maintenant que je regarde mon programme, la boucle est parfaitement inutile et même dangereux!!! Je souhaitais en effet faire ce que _sam_ proposait!!!
    Je m'en excuse (faire vite n'est jamais une bonne idée)!!!

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 155
    Points : 37
    Points
    37
    Par défaut merci pour tout le monde
    un grand merci pour tout le monde (frajen ,s_a_m,olivier.decourt,Manoutz ,m.brahim j'ai reussi a le faire avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROC SQL OUTOBS=20 ;
      CREATE TABLE work.ech20 (DROP=alea) AS
        SELECT *, RANUNI(1) AS alea
        FROM ta_table
        ORDER BY alea
      ;
    QUIT ;
    sa marche trés bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter des nouvelles données dans une table
    Par Lingo dans le forum Access
    Réponses: 7
    Dernier message: 27/10/2006, 14h58
  2. [VRML] Faire des trous ronds dans une table.
    Par yoyo910 dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 22/03/2006, 18h56
  3. Insérer des données Excel dans une table ACCESS
    Par anikeh dans le forum Access
    Réponses: 4
    Dernier message: 21/12/2005, 23h42
  4. Sélectionner 5 tuples aléatoirement dans une table
    Par subhuman dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/11/2005, 16h18
  5. suppression des caratères spéciaux dans une table
    Par syl221 dans le forum Access
    Réponses: 6
    Dernier message: 31/08/2005, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo