Ecriture cellule texte

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

paul villaespesa
Messages : 11
Enregistré le : 13 Avr 2018, 17:25

Ecriture cellule texte

Messagepar paul villaespesa » 06 Déc 2018, 16:19

Bonjour,

Je n'arrive pas à savoir si il existe une fonction ou si je doit écrire une boucle if pour ma question.

Ma question est: dans mon dataframe, j'ai une variable caractère type "80650-Oiseaux-11O" qui correspond à l'ID d'un point.
J'aimerais remplacer ce texte par simplement "Oiseaux".

J'ai pensé à écrire quelque chose comme: if(str_detect(NbobsMaille$`Lieu-dit`,"oiseaux"))
{ print("Oiseaux")}
Mais je n'arrive pas à écrire dans mes cellules le texte "oiseaux"

Cordialement
Paul Villaespesa

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

Re: Ecriture cellule texte

Messagepar Serge Rapenne » 06 Déc 2018, 16:32

Bonjour,

Une possibilité :

Code : Tout sélectionner

dta<-data.frame(ID=1:10,nom=paste(1001:1010,sample(c("Oiseaux","reptile"),10,replace=T),101:110,sep="-")) #Création d'un jeu de données bidon pour l'ex
dta
   ID              nom
1   1 1001-reptile-101
2   2 1002-Oiseaux-102
3   3 1003-Oiseaux-103
4   4 1004-Oiseaux-104
5   5 1005-Oiseaux-105
6   6 1006-reptile-106
7   7 1007-reptile-107
8   8 1008-Oiseaux-108
9   9 1009-reptile-109
10 10 1010-reptile-110

dta$nom[grepl("Oiseaux",dta$nom)]<-"oiseaux"
 dta
   ID              nom
1   1 1001-reptile-101
2   2           oiseaux
3   3           oiseaux
4   4           oiseaux
5   5           oiseaux
6   6 1006-reptile-106
7   7 1007-reptile-107
8   8           oiseaux
9   9 1009-reptile-109
10 10 1010-reptile-110


Serge

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

Re: Ecriture cellule texte

Messagepar Serge Rapenne » 06 Déc 2018, 16:40

Juste pour le fun de s'amuser avec les expressions rationnelles, une autre possibilité :

Code : Tout sélectionner

dta$nom<-gsub("[0-9]+-Oiseaux-[0-9]+","oiseaux",dta$nom)
> dta
   ID              nom
1   1          oiseaux
2   2          oiseaux
3   3          oiseaux
4   4          oiseaux
5   5 1005-reptile-105
6   6          oiseaux
7   7 1007-reptile-107
8   8          oiseaux
9   9          oiseaux
10 10 1010-reptile-110
Serge

paul villaespesa
Messages : 11
Enregistré le : 13 Avr 2018, 17:25

Re: Ecriture cellule texte

Messagepar paul villaespesa » 07 Déc 2018, 07:46

Merci beaucoup
Ca marche super

je vais pouvoir m'amuser comme un fou.

Paul

Logez Maxime
Messages : 2836
Enregistré le : 26 Sep 2006, 11:35

Re: Ecriture cellule texte

Messagepar Logez Maxime » 07 Déc 2018, 15:20

Bonjour,

tu as pas mal de possibilités aussi avec le package stringi :

Code : Tout sélectionner

library(stringi)
x <- "80650-Oiseaux-11O"
stri_extract_first_fixed(x, "Oiseaux")
[1] "Oiseaux"
Cordialement,
Maxime


Retourner vers « Questions en cours »

Qui est en ligne

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