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

Macro Discussion :

Dichotomisation de variable à réponses multiples


Sujet :

Macro

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Points : 108
    Points
    108
    Par défaut Dichotomisation de variable à réponses multiples
    Bonjour,
    j'ai la base suivante:
    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
    18
    19
    20
    21
    22
    23
    data bmultiple;
       infile datalines delimiter=',' missover dsd; 
       input ident $ SIL MOV $;
       datalines;                      
    A,123,0204
    B,12,03
    C,23,99
    D,2,88
    E,1
    F,23,0203
    G,8,01
    A1,13,0405
    B1,2,03
    C1,,99
    D1,2,88
    E1,8
    F1,9,88
    G1,9,99
    H1,3
    J1,1,02
    K1
    L1,8,88
    ;run;

    j'aimerais écrire une macro permettant de dichotomiser ces 2 variables SIL et MOV à réponses multiples.

    Pour SIL les modalités de réponses sont 1 2 3 8 et 9
    Pour MOV les modalités de réponses sont 01 02 03 04 ... 88 et 99

    J'aimerais en sortie les variables dichotomisées sous la forme SIL_1 SIL_2 .... MOV_01 MOV_02 ... avec pour modalité de réponse soit 0 ou 1 pour SIL_1 ou MOV_01 ,
    soit 0 ou 2 pour SIL_2 ou MOV_02 , ...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Points : 108
    Points
    108
    Par défaut
    Bonjour,
    je voudrais apporter une précision.

    J'ai récupéré une macro qui marche très bien si l'on a que des réponses uniques, mais le problème surgit dès que la variable est à réponse multiple, c'est à dire quand la personne peut répondre plusieurs modalités comme par exemple pour les identifiants A,123,0204 (enquêté a répondu pour SIL à la fois 1 et 2 et 3 , pour MOV à la fois 02 et 04)
    et F,23,0203

    Voici le code de cette macro que je voudrais adapter :
    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
    18
    19
    %MACRO DICHOTO(TABLE_ENTREE,VAR) ;
     
    PROC SORT DATA=&TABLE_ENTREE OUT=WORK.AAA NODUPKEY ; BY &VAR; RUN ;
     
    DATA AAA; set AAA; if &VAR=. then &var=0;RUN;*&var="miss";
     
    DATA _NULL_ ; SET WORK.AAA(KEEP=&VAR) END=EOF NOBS=NBOBS ; CALL SYMPUT("COL" !!COMPRESS(_N_), COMPRESS(&VAR)) ;
     
    IF EOF THEN CALL SYMPUT("NB",COMPRESS(_N_)) ;* put "NB" &&NB;
    RUN ;
     
    DATA &TABLE_ENTREE ; SET &TABLE_ENTREE ; %DO I = 1 %TO &NB; 1
    IF COMPRESS(&VAR)="&&COL&I" then 
    &&VAR._&&COL&I= "&&COL&I" ; else &&VAR._&&COL&I= "0";
    %put &&COL&I; %END ;*(COMPRESS(&VAR)="&&COL&I"); RUN;
     
    PROC PRINT DATA=&TABLE_ENTREE(OBS=20) ; VAR &VAR %DO I = 1 %TO &NB; &&VAR._&&COL&I %END ; ; RUN ;
     
    %MEND DICHOTO ;
    Ce qui veut dire qu'il faut introduire en plus le moyen de traiter les cas où réponses multiples, ce qui implique de les extraire et de les traiter.
    Ceci devrait donner une sortie pour l'identifiant A pour SIL => SIL_1 =1 SIl_2 =2 SIL_3 =3 et les autres SIL à 0
    Et pour MOV => MOV_02=02 MOV_04=04 et les autres MOV à 0
    J'espère être plus clair ainsi.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    quel est le nombre total d'observation dans la table bmultiple ?
    Hoss

Discussions similaires

  1. réponses multiples à la Condition "IN" ?
    Par antalata dans le forum Oracle
    Réponses: 2
    Dernier message: 05/04/2011, 10h58
  2. Web Services avec réponse multiple
    Par mosit dans le forum Langage
    Réponses: 1
    Dernier message: 27/08/2009, 17h50
  3. [SQL2K5] Astuce pour utiliser une variable à valeur multiple
    Par Jinroh77 dans le forum Développement
    Réponses: 0
    Dernier message: 28/05/2008, 15h27
  4. Recherche avec réponse multiple
    Par exover dans le forum Excel
    Réponses: 12
    Dernier message: 26/03/2008, 17h36
  5. Requete à réponse multiple
    Par ToTo13 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/06/2007, 00h48

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