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 :

Rechercher un mot dans une chaine de caractères


Sujet :

SAS Base

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2009
    Messages : 81
    Points : 42
    Points
    42
    Par défaut Rechercher un mot dans une chaine de caractères
    Bonjour,

    J'ai la variable Article, et cette variable peut prendre les valeurs suivantes :

    contenu,agréable,incitatifs,taille
    contenu,incitatifs
    agréable
    agréable
    utile,contenu,agréable,incitatifs
    utile,contenu,agréable,incitatifs,taille
    utile,contenu,agréable

    je voudrais créer une nouvelle variable qui vérifie que certains mots existent.. par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Q6REP1=0; if scan(article, "utile")>0 then Q6REP1=1; /*utiles pour mon métier*/
    Q6REP2=0; if scan(article, "contenu")>0 then Q6REP2=1; /*au contenu intéressant*/
    Q6REP3=0; if scan(article, "agréable")>0 then Q6REP3=1; /*agréables à lire*/
    Q6REP4=0; if scan(article, "incitatifs")>0 then Q6REP=1; /*incitatifs à la réflexion*/
    Q6REP5=0; if scan(article, "taille")>0 then Q6REP5=1; /*d'une taille bien adaptée*/
    donc si je trouve la valeur "utile" dans la variable article, cela m'incrémente la variable Q6REP1 à 1...

    cependant, quand j'exécute de bout de code, j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    NOTE: Invalid numeric data, 'utile' , at line 67 column 28.
    NOTE: Argument 2 to function SCAN at line 67 column 14 is invalid.
    NOTE: Invalid numeric data, 'contenu' , at line 68 column 28.
    NOTE: Argument 2 to function SCAN at line 68 column 14 is invalid.
    NOTE: Invalid numeric data, 'agréable' , at line 69 column 28.
    NOTE: Argument 2 to function SCAN at line 69 column 14 is invalid.
    NOTE: Invalid numeric data, 'incitatifs' , at line 70 column 28.
    NOTE: Argument 2 to function SCAN at line 70 column 14 is invalid.
    NOTE: Invalid numeric data, 'taille' , at line 71 column 28.
    NOTE: Argument 2 to function SCAN at line 71 column 14 is invalid.
    je vous remercie par avance pour votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    Bonjour,

    La fonction SCAN retourne Nième mot d'une chaine de caractère.
    Dans ton cas, il faut plutôt utiliser la fonction INDEX.

    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
    data test;
    input article $50.;
    cards;
    contenu,agréable,incitatifs,taille
    contenu,incitatifs
    agréable
    agréable
    utile,contenu,agréable,incitatifs
    utile,contenu,agréable,incitatifs,taille
    utile,contenu,agréable
    ;
    run;
     
    data test;
    set test;
    Q6REP1=0; IF index(article, "utile")>0 then Q6REP1=1; /*utiles pour mon métier*/
    Q6REP2=0; IF index(article, "contenu")>0 then Q6REP2=1; /*au contenu intéressant*/
    Q6REP3=0; IF index(article, "agréable")>0 then Q6REP3=1; /*agréables à lire*/
    Q6REP4=0; IF index(article, "incitatifs")>0 then Q6REP4=1; /*incitatifs à la réflexion*/
    Q6REP5=0; IF index(article, "taille")>0 then Q6REP5=1; /*d'une taille bien adaptée*/
    run;

  3. #3
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2009
    Messages : 81
    Points : 42
    Points
    42
    Par défaut
    super ! merci !

    allez j'abuse un peu de votre savoir faire !

    comment remplacer le caratère " \ " par le caractère " " dans une chaine de caractère :

    passer de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "bonjour \ comment \ ca \ va?"
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "bonjour comment ca va?"
    merci !

  4. #4
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    Allez, je suis de bonne humeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data test;
    var = "bonjour \ comment \ ca \ va?";
    var2 = TRANWRD(var,' \ ','');
    run;

  5. #5
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2009
    Messages : 81
    Points : 42
    Points
    42
    Par défaut
    Merci !

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. KSH : recherche d'un mot dans une chaine de caractère
    Par Cj_Dal dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/08/2010, 09h41
  3. Recherche d'un mot dans une chaine de caractère
    Par thanks33 dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2009, 12h26
  4. recherche de mots dans une chaine de caractères
    Par jeanfrancois dans le forum Langage
    Réponses: 5
    Dernier message: 10/02/2006, 10h47
  5. [Regex]Recherche de mots dans une chaîne
    Par lionel69 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 17/11/2005, 18h20

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