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 :

Nombre de modalités de croisements deux à deux sur un ensemble de variables


Sujet :

SAS Base

  1. #1
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut Nombre de modalités de croisements deux à deux sur un ensemble de variables
    Bonjour,

    Je dispose d'un fichier assez gros avec une trentaines de variables numériques (notées Vi) et caractères.
    Je souhaitais avoir pour chaque couple (Vi,Vj) le nombre de modalités croisées.
    Les Vi sont stockées dans la macro variable VAR. Le fichier contient également une variable _w=1 pour la sommation de la summary.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    PROC SUMMARY DATA=TEST missing;
    CLASS &VAR;
    VAR _w;
    WAYS 2;
    OUTPUT OUT=STAT SUM=;
    RUN;
    ensuite je pensais refaire une SUMMARY sur la variable _TYPE_.

    Cela ne semble pas fonctionner comme je le souhaite (et je ne suis qu'à moitié étonné) car le temps de calcul est considérable...(et pas sûr qu'il s'achêve correctement )

    Une autre piste était de faire les N*(N-1)/2 PROC SORT NODUPKEY ; BY Vi Vj ;

    Je ne cherche pas a connaitre le détail des croisements, mais uniquement le nombre de couple de modalité pour chaque (Vi,Vj)
    avec un fichier en sortie

    Name1= nom de la variable
    Name2= nom de la variable
    nb_couple= nombre de couple de modalité (valeurs manquantes y compris) entre Name1 et Name2

    Par exemple

    Name1 Name2 Nb_couple
    SEXE AGE 212
    SEXE ACTIVITE 68
    AGE ACTIVITE 1852

    etc....

    Si vous avez des idées comment on pourrait aborder ça niveau programmation pour faire calculer cette table le plus rapidement possible par SAS sans tout faire exploser...

    Edit : Je me contenterais même bien d'une estimation de l'ordre de grandeur à un facteur 10 près...

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    sans tout faire exploser mais en créant un produit cartésien je ferai une proc FREQ avec l'option SPARSE.
    Avant, je pense qu'il faudrait transposer la table pour n'avoir qu'une variable V1 pour les numériques et V2 pour les caractères, comme cela le SPARSE croisera toutes les modalités.
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut
    Merci Stéphane, je ne suis pas sûr de tout comprendre, mais je regarde ça à la rentrée, bonne vacances pour ceux qui comme moi prennent des congés en cette fin de mois d'août !

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/10/2008, 07h46
  2. besoin d'un ou deux tuyaux sur les ressources svp
    Par giova_fr dans le forum MFC
    Réponses: 2
    Dernier message: 23/06/2005, 11h41
  3. impossible d'ouvrir deux recordset sur la meme connection ?
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 28/04/2005, 09h31
  4. Deux ecrans sur un PC
    Par le_mangeur_de_champi dans le forum Matériel
    Réponses: 7
    Dernier message: 16/03/2004, 11h23
  5. Deux lignes sur un TButton
    Par bml dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/07/2003, 11h17

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