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 :

Création formats depuis dataset


Sujet :

SAS Base

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut Création formats depuis dataset
    Bonjour,
    J'ai trouvé sur un site le moyen de déclarer des formats numériques depuis un dataset. Selon ce site, les variables SEXCL et EEXCL permettent, notamment, de spécifier si les extrémités de l'intervalle sont exclues ou pas du format (SEXCL = 'Y' pour exclure la valeur START et EEXCL = 'Y' pour exclure la valeur END). J'ai testé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    data t_formats;
            length start $4 label $100 type $1 fmtname $20  ;	
    	retain type 'C' 	fmtname  'Test' ;
    		start = '0'  ; end = '10';label= 'De 0 à moins de 10'   ; SEXCL='N';EEXCL='Y'; output;
    		start = '10' ; end = '20';label= 'De 10 à moins de 20' ; SEXCL='N';EEXCL='Y'; output;
    		start = '20' ; end = '30';label= 'De 20 à moins de 30' ; SEXCL='N';EEXCL='Y'; output;
    		start = '30' ; end = '50';label= 'De 30 à 50'              ; SEXCL='N';EEXCL='N'; output;
    run;
    proc format cntlin=t_formats;run;
    Mais SAS me retourne l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR: Start is greater than end: -.
    Je ne vois pas où SAS voit une valeur de START supérieure à celle de END ??

  2. #2
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    Juillet 2013
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ArchiDuc de la Sasserie
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 439
    Points : 1 017
    Points
    1 017
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    En enlevant les quotes des valeurs numériques, ça fonctionne mieux?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Sur le site http://thesasreference.wordpress.com...c-format-proc/, on peut lire :

    "S’il est possible de convertir de convertir le nombre 100 stocker dans une variable alphanumérique en numérique, il est impossible de convertir le mot ABC en numérique. Dans cet exemple on comprend mieux pour quoi START est toujours alphanumérique qu’il s’agisse d'un format numérique ou alphanumérique."

    Et puis, je souhaiterais mettre plusieurs formats dans ma table (dont la plupart caractères), donc je dois avoir un type Caractères pour START. J'ai quand même testé sans quotes, cela ne fonctionne pas (même erreur dans la log). Par contre, je me suis rendu compte que e n'avais pas indiqué la valeur 'N' pour le type. J'ai corrigé cette erreur, mais ça me sort toujours la même erreur dans la log quand même

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 181
    Points
    181
    Par défaut
    Bonjour,

    Pour info la log de mon coté ne contient pas ton erreur :

    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
     
    11     data t_formats;
    12             length start $4 label $100 type $1 fmtname $20  ;
    13         retain type 'C'     fmtname  'Test' ;
    14             start = '0'  ; end = '10';label= 'De 0 à moins de 10'   ; SEXCL='N';EEXCL='Y'; output;
    15             start = '10' ; end = '20';label= 'De 10 à moins de 20' ; SEXCL='N';EEXCL='Y'; output;
    16             start = '20' ; end = '30';label= 'De 20 à moins de 30' ; SEXCL='N';EEXCL='Y'; output;
    17             start = '30' ; end = '50';label= 'De 30 à 50'              ; SEXCL='N';EEXCL='N'; output;
    18     run;
     
    NOTE: The data set WORK.T_FORMATS has 4 observations and 7 variables.
    NOTE: Compressing data set WORK.T_FORMATS increased size by 100.00 percent.
          Compressed is 2 pages; un-compressed would require 1 pages.
     
    19     proc format cntlin=t_formats;
    NOTE: Format $TEST has been output.
    19   !                              run;
     
    NOTE: There were 4 observations read from the data set WORK.T_FORMATS.
    Cordialement,

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut
    Merci à vous pour vos réponses ... et désolé : l'erreur était en fait plus haut. Je définissais d'autres formats caractères dans la même étape data et où je n'avais pas besoin, en principe, de la variable END (et que j'avais donc laissée à blanc). Cela fonctionnait tant que je ne mélangeais pas ces 2 types de formats. Mais, en mettant tout ensemble, cela donnait effectivement une valeur manquante pour End, et, donc, inférieure à la variable START !

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

Discussions similaires

  1. Création fichier Excel depuis DataSet avec OleDb
    Par djidane39 dans le forum C#
    Réponses: 5
    Dernier message: 23/10/2009, 22h44
  2. Création fichier depuis db oracle
    Par segphault dans le forum SGBD
    Réponses: 2
    Dernier message: 20/07/2006, 16h59
  3. création exécutable depuis Jar
    Par chasse dans le forum EDI et Outils pour Java
    Réponses: 17
    Dernier message: 24/05/2006, 15h54
  4. [VB.NET][.NET 2] Création d'un DataSet
    Par stailer dans le forum Windows Forms
    Réponses: 1
    Dernier message: 11/02/2006, 14h14
  5. Création database depuis Delphi avec dbExpress
    Par alex4 dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/09/2004, 16h01

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