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 :

Déterminer si plusieurs variables d'une même observation sont identiques


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Déterminer si plusieurs variables d'une même observation sont identiques
    Bonjour,

    Voici un problème que je n'ai pas réussi à résoudre après plusieurs recherches.

    Je possède plusieurs variables (150).

    Mon tableau est de la manière suivante :

    Identifiant Var1 Var2 Var3 Var4 Var5 ... Var150
    11111111 A A A
    22222222 B B
    33333333 A A A A
    44444444 B B B B B
    55555555 A A A B

    etc...

    J'aimerais pour chaque identifiant savoir si toutes les valeurs comprises pour les variables Var1 à Var150 sont identiques ou non, sachant que pour chaque observation le nombre de Var1 à Var150 rempli est différent, mais pour ceux qui sont remplis, je veux savoir s'ils sont tous identiques ou non. Sauriez-vous comment procéder ?

    En gros, j'aimerais créer une nouvelle variable "Identique" qui me dit si oui ou non tous les champs remplis entre Var1 et Var150 sont identiques.

    Je suis sous SAS 8.

    Merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    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 : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Bonjour,
    Tu peux essayer ceci pour 5 variable :
    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
     
    Data test ;
    input Id : $8. (Var1 Var2 Var3 Var4 Var5)($);
    cards ;
    11111111 A A A A A
    22222222 B B A B A
    33333333 A A A A B
    44444444 B B B B B
    55555555 A A A B A
    ; proc print ; run ;
     
    DATA count ;
    SET test;
    cnt_A= countc( cats(of var:), 'A' );
    If cnt_A=5 then Identique_A="oui" ; Else Identique_A="non" ;
    cnt_B= countc( cats(of var:), 'B' );
    If cnt_B=5 then Identique_B="oui" ; Else Identique_B="non" ;
     
    run;

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Votre solution ne peut convenir.
    Au passage, je tiens à préciser que mes informations sont déjà dans une Table SAS, j'ai mis un exemple pour que vous compreniez la situation.

    Je n'ai pas 5 variables Var1 à Var5 toutes remplies, mais 150 variables Var1 à Var150 et pour chaque observation le nombre de variables remplis est différent. De plus, les champs ne sont pas uniquement remplis de A et B. Il y a un grand nombre de modalités différentes qui peut être pris par les variables et je ne connais pas la liste exhaustive des valeurs qui peuvent être prise (j'ai plus d'un million d'observations).

    Mon problème est vraiment résumé dans cette phrase :

    J'aimerais créer une nouvelle variable "Identique" qui me dit si oui ou non tous les champs remplis entre Var1 et Var150 sont identiques.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    Hello,

    Essaye avec un array ...

    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
    24
     
    /* Jeu de test */
    data matable;
    infile cards dsd missover dlm=' ';
    input Id Var1$ Var2$ Var3$ Var4$ Var5$ Var6$ var7$ var8$ var9$;
    cards;
    11111111 A A A . G .
    22222222 B B B B
    33333333 A A A A G A A A A
    44444444 B B B B B B B B B
    55555555 A A A B
    ;
    run;
     
    /* Traitement */
    data matable (keep=id testvar);
    set matable;
    array temp{*} var:;
    testvar="identique";
    do i=2 to dim(temp);
    	if testvar="identique" and temp(i)=temp(i-1) then testvar="identique";
    	else testvar = "KO";
    end;
    run;
    PS : SAS 8 ... quel courage

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci pour cette solution, mon problème est désormais résolu.

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

Discussions similaires

  1. Plusieurs valeurs d'une même variable : colonnes
    Par derfer dans le forum Débutez
    Réponses: 4
    Dernier message: 02/12/2012, 18h24
  2. [VB.NET] Var globales sur plusieurs projets d'une même solut
    Par boulete dans le forum Windows Forms
    Réponses: 8
    Dernier message: 16/02/2006, 14h04
  3. Plusieurs version d'une même App sur un même serveur
    Par Jeweller dans le forum XMLRAD
    Réponses: 27
    Dernier message: 14/02/2006, 11h33
  4. TForm pour plusieurs fenêtre dans une même fonction ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/11/2005, 12h38
  5. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 15h27

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