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 :

Manipulation date


Sujet :

SAS Base

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 8
    Points
    8
    Par défaut Manipulation date
    bonjour,
    je suis à nouveau bloquée sur la selection de ma population d'analyse (les dates et moi c'est pas l'amour fou );
    alors voilà j'ai une table qui contient les dates d'entrée de la population dans l'étude et une table qui contient les dates auquelles mes patients ont été malades pendant l'étude;
    je voudrais selectionner les patients dont moins de 6 mois s'est ecoulé entre l'introduction dans l'etude et la maladie;
    encore merci de m'apporter votre aide;


    voilà un echantillon de mes dates

    date d'entrée
    10072008
    15072008
    18072008
    30062008
    03072008
    07072008
    09072008
    09072008
    16072008
    01012007
    --072008
    ----2008


    date de la maladie
    06122007
    23062008
    ----2004
    25012007
    --032008
    07062007
    04032008
    06012008
    04102007

  2. #2
    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
    Bonjour Mia,

    il ya deux informations nénécéssaires pour bien répondre au problème

    1/ Tu as des données partiellement manquantes, qui ne sont pas "réellement" des dates SAS (par exemple --072008). Laissées comme telles il n'est pas possible de calculer un différence entre deux dates. En général, suivant l'analyse effectuée, il est précisé dans le proto/ SAP ce qu'il faut faire pour parer à ce genre de situations (en général, on utilise le scénario du pire cas, de sorte à ne omettre aucune situation)

    2/ En regardant brièvement la discussion au dessus, tu utilises date_test comme valeur numérique indiquant le jour (pas d'heure, ni autre mesure de teps plus précise). "6 mois" n'est pas un nombre constant de jours, suivant le jour de départ, car le nombre de jours par mois est variable.. A toi donc de décider comment déterminer ces "6 mois".

    Une fois que tu as imputé les observations partiellement manquantes, il te suffit de réunir les informations dans une meêm table et de regarder si l'intervalle est inférieur à ta définition de "6 mois". Dans l'exemple ci-dessous, je retiens 180 jours (=6*30) pour 6 mois.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    proc sql;
      create table TEST(where=INTERV<=180) as 
      select A.*, B.DAT_MALAD, B.DAT_MALAD-A.DAT_ENTRE as INTERV
      from TAB1(keep=SUBJID DAT_ENTRE) as A
        left join TAB2(keep=SUBJID DAT_MALAD) as B
        on A.SUBJID=B.SUBJID
    ;
    quit;

    Bon courage,

    Manoutz

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    merci manoutz ,
    mais en fait, mes 2 colonnes sont dans la meme table et si j'ai bien compris ton programme , il s'agit de joindre deux tables differentes?

  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
    Oui, je gère bien deux tables d'entrée différentes, confère ton précédent post. C'est plus simple s'il n'y a qu'une table! Il te suffit de faire la différence des variables de date de type numérique et le tour est joué (en supposant que l'imputation des dates partielles est déjà géré)

    Bon courage

    Manoutz

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    encore moi!
    svp, pouvez vous me dire si le code sas suivant est correcte (j'ai des doutes sur le format de mes dates); mes resultats ont l'air correct;
    en fait je calcule le nombre de jours entre les 2 intervalles (mon code ci dessous) et je n'aurai ensuite qu'à selectionner le nombre de jours qui m'interresse;

    data intervalle;
    set mabasededonnées;
    sdate=date-maladie;
    edate=dte-entree;
    actual=datdif (sdate, edate, 'act/act');
    days360=datdif (sdate, edate, '30/360');
    put actual=day360=;
    run;

Discussions similaires

  1. Manipulation Date SAS
    Par kfmystik dans le forum Débutez
    Réponses: 13
    Dernier message: 05/03/2010, 08h39
  2. Manipulation DATE en perl
    Par Scorff dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 15/09/2009, 16h31
  3. [Débutant] Manipulation date
    Par Sir Tengu dans le forum Modules
    Réponses: 1
    Dernier message: 09/03/2007, 14h56
  4. [C#] Manipulation Date
    Par diaboloche dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/02/2006, 13h30
  5. Réponses: 7
    Dernier message: 16/09/2005, 10h14

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