commande pour condition

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Julien Demeaux
Messages : 46
Enregistré le : 23 Oct 2017, 22:24

commande pour condition

Messagepar Julien Demeaux » 07 Oct 2018, 16:19

Bonjour,

Est-il possible de créer des conditions du type "contient" et pas seulement ==, !=, >, etc ?

J'aurais besoin de quelque chose du genre

Code : Tout sélectionner

ifelse(df$variable *contient* "210", 1 ,0)

Ma variable est une liste de character et je voudrais savoir si un character spécifique (ici 210) est présent dans la liste.

Merci pour votre aide

Pierre-Yves Berrard
Messages : 526
Enregistré le : 12 Jan 2016, 23:30

Re: commande pour condition

Messagepar Pierre-Yves Berrard » 07 Oct 2018, 18:38

Code : Tout sélectionner

grepl("210", df$variable)
PY

Julien Demeaux
Messages : 46
Enregistré le : 23 Oct 2017, 22:24

Re: commande pour condition

Messagepar Julien Demeaux » 07 Oct 2018, 19:37

Merci beaucoup Pierre-Yves !

Julien Demeaux
Messages : 46
Enregistré le : 23 Oct 2017, 22:24

Re: commande pour condition

Messagepar Julien Demeaux » 07 Oct 2018, 19:44

En mettant en pratique je me rends compte que je fais face à une autre problématique que je ne sais résoudre...

Si je rentre cette commande

Code : Tout sélectionner

ifelse(grepl("2", df$variable), 1 ,0)

comment m'assurer que la recherche sera focalisée sur exactement "2" et qu'elle ne prendra pas en compte "12", "20", "22", "200", et tous les autres chiffres comprenant 2 ?

Merci

Serge Rapenne
Messages : 1221
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: commande pour condition

Messagepar Serge Rapenne » 07 Oct 2018, 20:49

bonjour,

Code : Tout sélectionner

ifelse(grepl("^2$", df$variable), 1 ,0)

^ indique le début de chaine donc ^2 indique une chaine commençant par 2 et $ est la fin de chaine donc 2$ indique une chaine finissant par 2

Serge

Julien Demeaux
Messages : 46
Enregistré le : 23 Oct 2017, 22:24

Re: commande pour condition

Messagepar Julien Demeaux » 08 Oct 2018, 05:27

Merci beaucoup Serge !

Mickael Canouil
Messages : 442
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: commande pour condition

Messagepar Mickael Canouil » 08 Oct 2018, 08:48

Bonjour,

comme "grepl" renvoie un booléen ayant pour valeur 0/1, il suffit de convertir le type:

Code : Tout sélectionner

as.numeric(grepl("^2$", df$variable))


Cordialement,
Mickaël


Retourner vers « Questions en cours »

Qui est en ligne

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