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 :

Qualité de données : corriger les erreurs [DATA]


Sujet :

SAS Base

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut Qualité de données : corriger les erreurs
    J'ai une table qui a un problème de qualité de donné et j'aimerai corriger les erreurs:
    chaque ID doit correspondre à un auteur ou plusieurs auteurs avec chacun leur adresse. une colonne non renseigné prend la valeur -1. Donc je veux prendre ce qui manque les premiers adresse dessous et les faire remonter en dessus et les faire correspondre aux auteurs dans l'ordre alphabétique.
    en entrée j'ai :
    ID.............authors_ID ..............adress_id
    1............... 4............................-1
    1............... 5............................-1
    1............... -1...........................A
    1............... -1............................B
    2............... 1............................-1
    2............... 2............................-1
    2............... 3............................-1
    2...............-1............................D
    2............... -1............................E
    2................-1.............................F

    en sorti je veux avoir:
    ID.............authors_ID ..............adress_id
    1............... 4...........................A
    1............... 5............................B
    2................1.............................D
    2................2.............................E
    2................3.............................F

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 244
    Par défaut
    Salut voici une solution:

    Il y a probablement moyen de le faire autrement mais ceci fonctionne.

    J'avoue aussi avoir été perturbé par ton ID:
    Que deux auteurs aient le même ID, je peux le comprendre. (un livre écrit par deux auteurs)
    Mais que deux adresses aient le même ID -->?

    Comment peux-tu savoir quelle adresse va à quel auteur?

    Sinon si ton fichier source suit bien le même schéma que ce que tu nous a montré (le même ordre, le même nombre d'adresses que d'auteurs...),
    tu peux essayer comme 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    /* le data quality est la table que tu nous as montré en exemple */
    proc sort data=quality(drop= adress_id where=(not missing(authors_id))) out=auth;
    	by id authors_id;
    run;
     
    proc sort data=quality(drop= authors_id where=(not missing(adress_id))) out=adress;
    	by id adress_id;
    run;
     
    /*Ici je rajoute un id uniqie pour cahque ligne --> id2 */
    data adress_2id;
    	set adress;
    	id2 + 1;
    run;
     
    data auth_2id;
    	set auth;
    	id2 + 1;
    run;
     
    /* id2 sert pour la jointure*/
    proc sql;
    	create table res_sql as
    	select a.id, a.authors_ID, b.adress_ID, 
    	from auth_2id as A left join adress_2id as B
    	on A.id2 = B.id2;
    quit;

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut reponse
    il s'agit des articles écrit par un ou plusieurs auteurs. chaque auteur à son propre adresses.
    Donc on a pris un echantillon pour calculer la marge d'erreur. il s'est avérer que, pour chaque article, les N auteurs, dans l'ordre croissant, correspondent aux N adresses dans l'odre croissant

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 244
    Par défaut
    Ok, donc ça solutionne ton problème ou pas?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut reponse
    Non ça règle pas mon problème car le ID du l'article ne doit pas être changé. il reste le même. J'ai besoin juste de faire correspondre mes auteurs dans l’ordre croissant au adresse dans l’ordre croissant.

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 244
    Par défaut
    Euh..
    L'id de tes articles, je ne le change pas. --> il reste "ID".
    En fait je rajoute juste un "id2" pour faire la jointure.

    Pour le fait de faire correspondre dans l'ordre croissant, c'est aussi dans mon code (proc sort)

    Tu as essayé mon code?

    Sinon, je pense pas vraiment comprendre ton problème....
    pourtant j'ai fait le test avec les même entrées que tu as données et j'obtiens la sortie que tu as demandé

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/07/2009, 07h46
  2. Corriger les erreurs d'orthographe dans Texniccenter
    Par open_source dans le forum Débuter
    Réponses: 1
    Dernier message: 19/05/2009, 10h35
  3. corriger les erreurs d'espace commises dans une phrase
    Par johnny3 dans le forum Débuter avec Java
    Réponses: 22
    Dernier message: 06/05/2008, 23h58
  4. utilitaire pour corriger les erreurs disk
    Par mouna201 dans le forum Composants
    Réponses: 2
    Dernier message: 17/11/2006, 12h07
  5. [Configuration] besoin d'aides impossible de corriger les erreurs :(:((:
    Par moonia dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 27/03/2006, 10h36

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