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 :

missing values dans l'importation depuis SPSS [DATA]


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut missing values dans l'importation depuis SPSS
    salut,

    j'ai construis une variable en spss en utilisant un filtre. la base de données a N=18760, mais comme j'ai utilisé un filtre qui compte seulement les réponses à une question précise du questionnaire à laquelle ont répondu 14393 personnes, ma variable a N=14393. pas de problème jusque là.

    j'ai importé le fichier en SAS et ma variable compte N=18760. avec 0 missing. quelqu'un pourrait m'aider?

    j'éspère d'avoir été suffisamment claire mon français a quelques lacunes!

    merci d'avance

  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
    A priori je dirais que ca viens de ton filtre qui n'est pas appliqué. Tu importes comment en SAS? As tu des messages dans la log??

    Manoutz

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LIBNAME Enq07 SPSS 'L:\SPC\DUPA\PGT1\COMJEU\Collaborateurs CJE\STRACCIA Claudio\epidemiology\SPSS data\reduit_CS_ok.por';
    DATA reduit; 
    SET Enq07._FIRST_ ; 
    RUN ;
    et voici le message log
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1    LIBNAME Enq07 SPSS 'L:\SPC\DUPA\PGT1\COMJEU\Collaborateurs CJE\STRACCIA Claudio\epidemiology\SPSS data\reduit_CS_ok.por';
    NOTE: Libref ENQ07 was successfully assigned as follows:
          Engine:        SPSS
          Physical Name: L:\SPC\DUPA\PGT1\COMJEU\Collaborateurs CJE\STRACCIA Claudio\epidemiology\SPSS data\reduit_CS_ok.por
    2    DATA reduit;
    3    SET Enq07._FIRST_ ;
    4    RUN ;
     
    NOTE: There were 18760 observations read from the data set ENQ07._FIRST_.
    NOTE: The data set WORK.REDUIT has 18760 observations and 96 variables.
    NOTE: DATA statement used (Total process time):
          real time           4.63 seconds
          cpu time            1.04 seconds

  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
    essaye le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LIBNAME Enq07 SPSS 'L:\SPC\DUPA\PGT1\COMJEU\Collaborateurs CJE\STRACCIA Claudio\epidemiology\SPSS data\reduit_CS_ok.por';
     
    DATA reduit; 
    SET Enq07._FIRST_ (where=(ta variable=ta condition filtre)); 
    RUN ;
    ou si ta variable est de type charactère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DATA reduit; 
    SET Enq07._FIRST_ (where=(ta variable in ("ta condition filtre"))); 
    RUN ;

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    il ne lit pas "by"
    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
    5    LIBNAME Enq07 SPSS 'L:\SPC\DUPA\PGT1\COMJEU\Collaborateurs CJE\STRACCIA Claudio\epidemiology\SPSS data\reduit_CS_P.por';
    NOTE: Libref ENQ07 was successfully assigned as follows:
          Engine:        SPSS
          Physical Name: L:\SPC\DUPA\PGT1\COMJEU\Collaborateurs CJE\STRACCIA Claudio\epidemiology\SPSS data\reduit_CS_P.por
    6    DATA reduit;
    7    SET Enq07._FIRST_ (WHERE=(frjouers= filter by sglsp03a ));
                                                    --
                                                    22
                                                    76
    ERROR: Syntax error while parsing WHERE clause.
    ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, (, ), *, **, +, -, /, <, <=, <>, =, >, >=, AND, EQ, GE, GT, LE, LT, NE, NOT, OR, ^, ^=, |, ||, ~, ~=.
     
    ERROR 76-322: Syntax error, statement will be ignored.
     
    8    RUN ;
    en spss j'ai utilisé "filter by ..." mais là ça ne marche pas. si je dois repenser une synthaxe autant charger les données et recomputer la variable (mais je connais pas très bien les commandes ...), c'est peut-être plus facile que je te donne la synthaxe que j'ai utilisé en spss et tu m'aide à la modifier pour sas?

    en tout cas, voilà la synthaxe spss:
    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
    29
    30
    31
    */ Compute FreqJouers
     
     
    compute FreqJouers=2
     
    filter by sglsp03a.
    do if (sglsp03a = 1) or (sglsp03a = 2) or
    (sglsp03b = 1) or (sglsp03b = 2) or
    (sglsp03c = 1) or (sglsp03c = 2) or
    (sglsp03d = 1) or (sglsp03d = 2) or
    (sglsp03e = 1) or (sglsp03e = 2) or
    (sglsp03f = 1) or (sglsp03f = 2) or 
    (sglsp03g = 1) or (sglsp03g = 2) or
    (sglsp03h = 1) or (sglsp03h = 2) or
    (sglsp03i = 1) or (sglsp03i = 2) or
    (sglsp03j = 1) or (sglsp03j = 2) or
    (sglsp03k = 1) or (sglsp03k = 2) or
    (sglsp03l = 1) or (sglsp03l = 2) or
    (sglsp03m = 1) or (sglsp03m = 2) or
    (sglsp03n = 1) or (sglsp03n = 2) or
    (sglsp03o = 1) or (sglsp03o = 2) or
    (sglsp03p = 1) or (sglsp03p = 2) or
    (sglsp03q = 1) or (sglsp03q = 2) or
    (sglsp03r = 1) or (sglsp03r = 2).
    recode FreqJouers (2 = 1).
    end if. 
     
    /* missing values FreqJoueurs (2).
     
     
    value labels FreqJouers 2 'joueur occasionel' 1 'joueur frequent'.

  6. #6
    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
    Je ne connais pas SPSS, mais si j'ai bien compris, tu filtres sur les valeurs 1 et 2 de plusieurs variables, de sglsp03a à sglsp03r. C'est bien cela?

    ca donnerait en SAS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DATA reduit; 
    SET Enq07._FIRST_ (WHERE=(sglsp03a in (1,2) or /*etc..*/ or sglsp03r in (1,2) )); 
    RUN ;

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    pas exactement, en fait la variable sglsp03a(b,c,...) c'est la base pour la création de ma variable. si je met que les informations concernant la construction il va me compter N=18670 (qui sont les répondant totaux) tandis que moi je veux seulement ceux qui ont répondu à la question sglsp03a (N=14393).
    pour le faire je met le filtre "filter by sglsp03a".

    c'est le filtre qui m'interesse.

  8. #8
    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
    si le filtre doit retenir seulement les observations qui prennent pour valeur sglsp03a=1 ou sglsp03a=2 alors ton code est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DATA reduit; 
    SET Enq07._FIRST_ (WHERE=(sglsp03a IN (1,2))); 
    RUN ;
    cela implique que la variable sglsp03a soit présente lors de l'import dans SAS.

    Manoutz

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    comme j'avais besoin des valeurs valides de la variable sglsp03a, au lieu de mettre (1,2) je les mis tous. et ça marche parfaitement. maintenant j'ai un N=14393 dans ma base de données, ce que j'avais besoin.

    un grand merci.

    bonne journée

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/04/2012, 15h15
  2. [DATA] importation depuis SPSS - Tables
    Par Claude_S dans le forum SAS Base
    Réponses: 0
    Dernier message: 06/07/2009, 10h41
  3. importer les données dans une table depuis un fichier
    Par bennkabazz dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 23/12/2008, 11h34
  4. Réponses: 2
    Dernier message: 06/07/2007, 11h59
  5. Réponses: 1
    Dernier message: 20/09/2006, 19h51

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