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 :

Compter nombre de 0 dans une chaîne


Sujet :

SAS Base

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut Compter nombre de 0 dans une chaîne
    Bonjour,

    Je voudrais compter le nombre de 0 dans une chaîne de caractère.
    Quelqu'un saurait-il quelle fonction utiliser ?

    Je vous remercie d'avance,

    A bientôt,

    Thibault

  2. #2
    Membre émérite
    Homme Profil pro
    responsable adjoint service stat
    Inscrit en
    Mars 2009
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : responsable adjoint service stat
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Par défaut
    Une solution, en mixant length() et compress()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    data test ;
        text = "ggdqgkmdskh" ; output ;
        text = "0000gdqsgdd" ; output ;
        text = "g0d0d0d0d0d" ; output ;
        text = ""            ; output ;
    run ;
    data test ;
        set test ;
        nb_0 = length (text) - length(compress(text,"0")) ;
        put "text = " @8 text @20 "-> nb 0 = " nb_0 ;
    run ;

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Par défaut
    Utilise la fonction countc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    data _NULL_;
       len = '0123346';
       nbZero = countc(len, '0');
       put len= nbZero=;
       len = '23346';
       nbZero = countc(len, '0');
       put len= nbZero=;
       len = '01233460';
       nbZero = countc(len, '0');
       put len= nbZero=;
    run;
    xav

  4. #4
    Membre émérite
    Homme Profil pro
    responsable adjoint service stat
    Inscrit en
    Mars 2009
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : responsable adjoint service stat
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Par défaut
    La solution de xav(ier?) est indédinablement plus propre.
    Pour se convaincre qu'elle marche bien, faut cependant dans l'étape data préciser
    Sans quoi, pour "01233460", le dernier 0 est tronqué et le calcul affiche 1 zéro

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

Discussions similaires

  1. Compter le nombre de séparateurs dans une chaîne saisie
    Par marooh dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 19/11/2010, 14h02
  2. Calcul d'un nombre de caractères dans une chaîne
    Par Thekiller dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2010, 23h21
  3. [MySQL] compter nombre de table dans une base
    Par stephan55 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/06/2006, 18h31
  4. Nombre d'occurences dans une chaîne de caractères
    Par Olivier14 dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 19h11
  5. Compter nombre de mots dans une chaîne.
    Par xVINCEx dans le forum C++
    Réponses: 22
    Dernier message: 24/11/2004, 13h33

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