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 :

Format : passage de caractères à numériques


Sujet :

SAS Base

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut Format : passage de caractères à numériques
    Bonjour,


    J'ai une colonne qui contenait des caractères que j'ai modifié par des chiffres - or, la colonne est restée en caractère, j'aimerais que le format soit du numérique
    deuxième point : la longeur initiale de 4 caractères doit passer à un 1 numérique.

    Donc, quelle fonction utiliser ? merci...

    il y a INPUT, mais je n'y comprends rien, pouvez-vous me dire si je vise juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VARNEW = input(VARORI, 1.0) ;
    c'est-à-dire signifie-t-il : changer le format de VARORI (de caractère en numérique) de telle sorte que VARNEW ait une longeur de 1 caractère et 0 décimale ????
    Auriez-vous le code pour 1) ne pas avoir à créer une nouvelle variable, c'est long, puisqu'il faut ensuite supprimer l'ancienne, or j'aimerais aussi garder VARORI comme intitulé et non devoir nommer VARNEX...
    merci par avance,

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    C'est pas très clair...

    Peux tu faire un exemple?

    X

  3. #3
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut
    Bonjour,

    à ce que j'ai compris tu as une variable VAR à modalité caractères, tu transforme toutes les modalités par des modalités dans [0-9] et tu souhaite à présent que VAR soit numérique (sachant que dans SAS tu n'auras pas trop le choix si c'est du numérique ce sera du 8. enfin il en existe peut-être (??) d'autres mais je ne m'y suis jamais aventuré...).

    Si tu ne réutilise pas ta table ensuite avant de la fermer je te propose ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DATA TABLE;
    SET xxxx;
     
    blablabla
    ...
    blablabla
     
    DROP  VAR ;
    NUM=0;NUM=VAR;
    RENAME NUM=VAR ;
    RUN;
    Pas super élégant mais ça marche...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    @xav2299 :
    j'ai modifié mon message (le premier tout en haut) qui j'espère est plus clair

    @jerome
    Citation:
    op le choix si c'est du numérique ce sera du 8. enfin il en existe peut-être (??) d'autres mais je ne m'y suis jamais aventuré...).
    effectivement c'est length 8 pour du num. Mais est-ce prendre 8 octets pour une variable dont les valeurs sont 1 chiffre n'est pas de la perte d'espace inutile ????

    autre question : lorsqu'on change le format, les num ne doivent-ils pas s'aligner à droite dans la colonne ? en l'occurence, ils ne le sont pas ? Pourquoi ? Puis-je le changer ? Comment ? Merciiiiiiiiiiiiiiiiii

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    Citation Envoyé par logiclogic Voir le message
    @xav2299 :
    Mais est-ce prendre 8 octets pour une variable dont les valeurs sont 1 chiffre n'est pas de la perte d'espace inutile ????
    bah oui mais en SAS les numeriques sont des DOUBLE cela a ses avantages et ses inconvenients mais c'est comme ca.

    Si tu veux autre chose comme précision il faut utiliser la version 9.3 de SAS et la PROC DS2.

    X

  6. #6
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut
    Mais est-ce prendre 8 octets pour une variable dont les valeurs sont 1 chiffre n'est pas de la perte d'espace inutile ????
    c'est bien pour ça que dans ton cas il serait plus pertinent de transformer ta variable caractère en $1. plutôt qu'en 8. ...
    Je ne sais pas pourquoi tu veux a tout prix du numérique vu que ta variable "numérique" semble le résultat de transformation de modalité de variable catégorielles il serait même pertinent qu'elle soit caractère (je ne pense pas que tu vas faire des multiplications, additions soustractions sur cette variable).

    Le numérique est à réserver pour du vrai numérique (des choses sur lesquelles on peut faire les opérations dites "algébriques" ou qui est de même nature que le "continu").

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2012
    Messages : 40
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    On peut définir des variables numériques avec moins de 8 octets dans SAS.
    Il est vrai que par défaut, SAS les crée sur 8 octets si on ne lui indique rien.
    Il suffit avant de créer sa variable de préciser (par exemple) :
    la longueur minimale d'une variable numérique sur Windows est de 3 octets.
    Par contre la solution proposée par jérome reste la meilleure ($1.) pour limiter l'espace occupé.

    Pascal

Discussions similaires

  1. [DATA] Transformer colonne numérique formatée en colonne caractère
    Par yedid dans le forum SAS Base
    Réponses: 1
    Dernier message: 23/04/2013, 15h06
  2. JavaScript/Zone de texte : n'accepter que les caractères numériques
    Par arkienou dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/07/2006, 15h16
  3. Réponses: 7
    Dernier message: 29/05/2006, 15h46
  4. [Sqlplus] problème de passage des caractéres "é"
    Par tripper.dim dans le forum Oracle
    Réponses: 1
    Dernier message: 01/02/2006, 19h35
  5. [HTML] pbm passage du caractère & dans lien web
    Par fab22montpellier dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 13/09/2005, 22h17

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