Aide. Expression régulière et retrait de Doublon.

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

Haine Nathan
Messages : 3
Enregistré le : 14 Fév 2022, 16:17

Aide. Expression régulière et retrait de Doublon.

Messagepar Haine Nathan » 21 Fév 2022, 15:34

Bonjour ,

Je me permet de vous demander de l'aide parce que je sèche un peu , je suis débutant sur R et en programation , et je me retrouve devant un problème simple. J'ai d'ailleurs une partie de la solution :" Il faut que j'utilise une expression régulière".

J'ai une colonne en data Frame qui est une chaine de caractères en colonne qui prend la forme "Genre espèce Auteur [Date]".

J'aimerais garder uniquement la colonne "Genre espèce"
j'avais prévu d'utiliser la fonction split mais je n'arrive pas a trouver l'expression régulière me permettant de séparer au deuxième espace.

( Et si au passage vous avez une solution pour regrouper toute mes lignes dont chaque colonne est identique après , parce que je sens que c'est ce qui vas sortir ...)

Merci d'avance !

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

Re: Aide. Expression régulière et retrait de Doublon.

Messagepar Pierre-Yves Berrard » 21 Fév 2022, 22:35

Bonjour,

Je ne pense pas qu'on puisse le faire avec split (peut-être avec strsplit ?).

Une solution parmi d'autres (avec sub) :

Code : Tout sélectionner

donnees <-
  data.frame(
    x = c("Genre espèce Auteur [Date]", "Genre2 espèce2 Auteur [Date]")
  )

sub("([^ ]+ [^ ]+) .+", "\\1", donnees$x)
#> [1] "Genre espèce"   "Genre2 espèce2" 


(pour la deuxième question : voir ?duplicated)
PY

Haine Nathan
Messages : 3
Enregistré le : 14 Fév 2022, 16:17

Re: Aide. Expression régulière et retrait de Doublon.

Messagepar Haine Nathan » 22 Fév 2022, 09:28

Merci beaucoup !

L'expression régulière marche nickel . Et au final pour l'instant je n'ai pas besoin de duplicated pour réorganiser le tout.

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

Re: Aide. Expression régulière et retrait de Doublon.

Messagepar Mickael Canouil » 22 Fév 2022, 10:27

Bonjour,

une autre expression régulière pour "simplifier" :

Code : Tout sélectionner

sub(
  
"(( [^ ]+){2})$",
  
"",
  
c("Genre espèce Auteur [Date]""Genre2 espèce2 Auteur [Date]")
)
#> [1] "Genre espèce"   "Genre2 espèce2" 


Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Re: Aide. Expression régulière et retrait de Doublon.

Messagepar Gabriel Terraz » 22 Fév 2022, 12:00

Une autre (sous réserve de respect des majuscules) :

Code : Tout sélectionner

sub(" [A-Z].+",
  "",
  c("Genre espèce Auteur [Date]", "Genre2 espèce2 Auteur [Date]")
)

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

Re: Aide. Expression régulière et retrait de Doublon.

Messagepar Pierre-Yves Berrard » 22 Fév 2022, 12:21

Je ressors une nouvelle fois cette astuce avec read.table ^^ :

Code : Tout sélectionner

do.call(
  paste,
  read.table(text = c("Genre espèce yz [Date1]", "Genre2 espèce2 abc [Date2]"))[1:2]
)
PY

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Re: Aide. Expression régulière et retrait de Doublon.

Messagepar Gabriel Terraz » 22 Fév 2022, 13:17

Et avec strsplit :

Code : Tout sélectionner

st <- strsplit(
   c("Genre espèce Auteur [Date]", "Genre2 espèce2 Auteur [Date]"),
   " "
)
sapply(lapply(st, head, 2), paste, collapse = " ")

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

Re: Aide. Expression régulière et retrait de Doublon.

Messagepar Mickael Canouil » 22 Fév 2022, 15:53

Code : Tout sélectionner

<- c("Genre espèce Auteur [Date]""Genre2 espèce2 Auteur [Date]")

bm <- bench::mark(
sub("(( [^ ]+){2})$"""x),
sub("([^ ]+ [^ ]+) .+""\\1"x),
sub(" [A-Z].+"""x),
do.
call(pasteread.table(text x)[1:2]),
sapply(strsplit(x" "), \(.xpaste(head(.x2), collapse " "))
)
plot(bm)
#> Loading required namespace: tidyr 


Image
Mickaël
mickael.canouil.fr | rlille.fr

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

Re: Aide. Expression régulière et retrait de Doublon.

Messagepar Pierre-Yves Berrard » 22 Fév 2022, 16:41

Je suis à la fois premier et dernier :D

edit : ah non celle de Gabriel est plus rapide (mais fait plus d'hypothèses de départ sur les données)
PY


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité