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

R Discussion :

comparaison de chaînes de caractères


Sujet :

R

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Par défaut comparaison de chaînes de caractères
    Bonjour,

    Je souhaite conserver dans un data.frame que les lignes commençant par "EHI".
    Mon data.frame a la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                NbOfReads2 NbOfReads3 NbOfReads4 NbOfReads6 NbOfReads7 NbOfReads8
    EHI_012000         161          0        152        168          0          0
    EHI_012010         740          0        899        713          0          0
    EHI_012020       10653          0      21821      10571          0          0
    Les lignes ont 4 formes possibles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    EHI_072740
    EhLINE1_157_1
    EhRC4_548_2
    EhSINE1_386_3 EhERE2_474_4
    Ce qui me permet de conserver ce que je veux en sélectionnant les lignes qui commencent par "EHI". Les fonctions grep, substring ne font pas exactement ce que je veux. Je cherche une fonction qui serait l'équivalent de la fonction Matlab "strcmp"...

    Est-ce que quelqu'un connaît une fonction pour faire ceci ?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Par défaut
    En fait, la fonction grep résout mon problème ! Elle retourne bien la position de la chaîne de caractères cherchée

  3. #3
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Bonjour,

    Pourquoi la fonction grep ne ferait-elle pas l'affaire ?

    J'ai un peu modifié ton exemple de données pour l'exemple et avec grep, tu peux obtenir les numéros de lignes commençant par "EHI" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > df
                  NbOfReads2 NbOfReads3 NbOfReads4 NbOfReads6 NbOfReads7 NbOfReads8
    EHI_012000           161          0        152        168          0          0
    EhLINE1_157_1        740          0        899        713          0          0
    EHI_012020         10653          0      21821      10571          0          0
    EhSINE1_386_3        740          0        899        713          0          0
    EHI_012021         10653          0      21821      10571          0          0
     
    > grep(pattern="^EHI", row.names(df))
    [1] 1 3 5
    Numéros que tu peux utiliser comme indices pour ne retenir que les lignes correspondantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > df[grep(pattern="^EHI", row.names(df)), ]
               NbOfReads2 NbOfReads3 NbOfReads4 NbOfReads6 NbOfReads7 NbOfReads8
    EHI_012000        161          0        152        168          0          0
    EHI_012020      10653          0      21821      10571          0          0
    EHI_012021      10653          0      21821      10571          0          0
    Edit: Oups, j'avais pas vu que tu avais répondu dans l'intervalle !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Par défaut
    Merci quand même

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

Discussions similaires

  1. Comparaison de chaînes de caractères
    Par bam14 dans le forum Cobol
    Réponses: 3
    Dernier message: 27/08/2007, 10h13
  2. comparaison de chaînes de caractères
    Par Jasmine80 dans le forum Langage
    Réponses: 17
    Dernier message: 27/07/2007, 09h47
  3. Réponses: 3
    Dernier message: 16/05/2007, 14h41
  4. [MySQL] Problème de comparaison de chaîne de caractères
    Par Laurent64 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/05/2007, 19h04
  5. [Excel-VBA] Pb de comparaison de chaîne de caractères
    Par tangjuncn dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/02/2007, 12h50

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