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 :

Extraction de caractères dans une variable


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Points : 21
    Points
    21
    Par défaut Extraction de caractères dans une variable
    Bonjour à tous,

    Je cherche à extraire dans une variable certaines chaînes de caractères.
    La longueur à extraire étant toujours différentes, je n'arrive pas à m'en sortir ...
    Je sais bien qu'il y a les fonctions SUBSTR et INDEX qui existent mais je n'arrive pas à obtenir ce que je veux ...

    Exemple :
    J'ai une colonne qui s'appelle "Variables" et qui est composée de :
    ab_defg_min
    cdf_abcdef_min
    pokiu_kfirpadnchh_median
    ju_porjf_P1

    etc etc

    Je cherche à avoir dans une nouvelle colonne la variable en tant que tel : ab_defg , cdf_abcdef , pokiu_kfirpadnchh , ju_porjf ... etc etc

    Puis dans une seconde nouvelle colonne, le préfixe : min, max, median, P1 , P99, mean , N , NMiss ... etc etc

    Est-ce que quelqu'un aurait une idée ????

    Merci beaucoup pour votre aide !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 114
    Points : 158
    Points
    158
    Par défaut
    Bonjour,

    Avec la fonction scan en partant de droite puis avec substr ça devrait le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    data test;
    input variables :$100.;
    cards;
    ab_defg_min
    cdf_abcdef_min
    pokiu_kfirpadnchh_median
    ju_porjf_P1
    ;
    run;
    data test2;
    set  test;
    stat=scan(variables,-1,'_');
    variable=substr(variables,1,lengthn(variables)-lengthn(stat)-1);
    run;

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Ca marche !!!!!!!

    Est-ce que vous pourriez m'expliquer ce que font les différentes formules de manière "parlé" afin que je comprenne comment cela marche ????

    Merci mille fois pour votre aide !

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 114
    Points : 158
    Points
    158
    Par défaut
    La fonction scan permet d'extraire le nième "mot" dans une chaîne de caractères, avec des séparateurs de mots en option.
    1. l'instruction stat=scan(variables,-1,'_') permet de récupérer le premier mot donc la première chaine de caractère en partant de la droite vers la gauche, et en considérant que chaque chaîne est séparé par un Under score.
    2. Ensuite j'utilise substr pour récupérer le premier caractère jusqu'au caractère qui vient avant le Under score qui m'a permis de récupérer le premier mot partant de la droit

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Merci bcp pour vos explications, c'est nettement plus clair ainsi !!!

    Bonne journée !!!

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

Discussions similaires

  1. Extraction de données dans une variable
    Par eudes dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/01/2010, 22h16
  2. Réponses: 21
    Dernier message: 10/04/2009, 12h26
  3. Extraction de chaine dans une variable (vbs) ?
    Par liocifer dans le forum VBScript
    Réponses: 2
    Dernier message: 22/05/2008, 21h30
  4. escape le caractère $ dans une variable
    Par Exo dans le forum Langage
    Réponses: 3
    Dernier message: 08/10/2007, 14h00
  5. stocké des caractères dans une variable
    Par joe370 dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/07/2007, 14h36

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