Repérer un mot dans une colonne

Questions sur les objets de R et la manipulation des données

Modérateur : Groupe des modérateurs

d'Almeida Kayigan
Messages : 7
Enregistré le : 15 Mai 2006, 14:29

Repérer un mot dans une colonne

Messagepar d'Almeida Kayigan » 15 Mai 2006, 15:01

Bonjour,
débutante avec le logiciel R, je voudrais savoir comment il me serait possible de repérer un mot dans une colonne.
Exemple: mon tableau de départ.
MALADIE FACTEUR DE RISQUE
Infarctus tabac, alcool
Hépatite alcool

Je voudrais repérer uniquement les observations pour lesquels je retrouve le mot tabac dans les facteurs de risque.

Je ne sais pas si c'est très clair.

Merci!

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 15 Mai 2006, 19:38

Petit exemple:

Code : Tout sélectionner

> tmp <- data.frame(Maladie = c("Infarctus", "Hépatite", "Cancer du poumon"),
+                        FR = c("tabac, alcool", "alcool", "tabac"))
> tmp
           Maladie            FR
1        Infarctus tabac, alcool
2         Hépatite        alcool
3 Cancer du poumon         tabac
> pos <- regexpr(pattern = "alcool", text = as.character(tmp$FR))
> pos
[1]  8  1 -1
attr(,"match.length")
[1]  6  6 -1
> tmp[pos > 0, ]
    Maladie            FR
1 Infarctus tabac, alcool
2  Hépatite        alcool


NB:

* bien lire l'aide de regexpr, que je trouve assez obscure pour les gens qui n'utilisent pas (souvent) le logiciel Perl.

* l'argument text doit recevoir un vecteur de chaînes de caractères. Dans un data.frame, ces vecteurs sont transformés automatiquement en facteurs. Si l'on n'y prend pas garde, cela peut donner de mauvaises surprises:

Code : Tout sélectionner

> pos <- regexpr(pattern = "alcool", text = tmp$FR)
> pos
[1] -1 -1 -1
attr(,"match.length")
[1] -1 -1 -1
> tmp[pos > 0, ]
[1] Maladie FR     
<0 rows> (or 0-length row.names)


Cordialement,

Renaud

d'Almeida Kayigan
Messages : 7
Enregistré le : 15 Mai 2006, 14:29

merci!!!

Messagepar d'Almeida Kayigan » 16 Mai 2006, 07:41

merci beaucoup pour l'aide. J'ai essayé et ça marche.


Retourner vers « Archives : Manipulation de données avec R »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité