supprimer des chaînes après un certain caractère dans un texte donné


15

J'ai un ensemble de données comme celui ci-dessous. Je souhaite supprimer tous les caractères après le caractère ©. Comment puis-je faire cela dans R?

data_clean_phrase <- c("Copyright © The Society of Geomagnetism and Earth", 
"© 2013 Chinese National Committee ")

data_clean_df <- as.data.frame(data_clean_phrase)

Est-ce après un caractère spécifique ou après un index spécifique?
Dawny33

Après un personnage spécifique: ©
Hamideh

Ensuite, il semble que la réponse existante ait résolu votre question :)
Dawny33

Réponses:


19

Par exemple:

 rs<-c("copyright @ The Society of mo","I want you to meet me @ the coffeshop")
 s<-gsub("@.*","",rs)
 s
 [1] "copyright "             "I want you to meet me "

Ou, si vous souhaitez conserver le caractère @:

 s<-gsub("(@).*","\\1",rs)
 s
 [1] "copyright @"             "I want you to meet me @"

EDIT: Si ce que vous voulez est de tout supprimer du dernier @, il vous suffit de suivre cet exemple précédent avec l'expression rationnelle appropriée. Exemple:

rs<-c("copyright @ The Society of mo located @ my house","I want you to meet me @ the coffeshop")
s<-gsub("(.*)@.*","\\1",rs)
s
[1] "copyright @ The Society of mo located " "I want you to meet me "

Compte tenu de la correspondance que nous recherchons, sub et gsub vous donneront la même réponse.


Je vous remercie. Et si je veux le faire pour le dernier © dans le texte. Considérez ceci: c ("© aaa © bbb") -> c ("© aaa")
Hamideh

@HamidehIraj Vous pouvez utiliser des expressions rationnelles pour exécuter cela.
Dawny33

1
Je vous en prie. Une fois que vous aurez utilisé regex, vous verrez qu'il est aussi facile de le supprimer du dernier @ char. J'ai modifié ma réponse pour inclure également ce cas.
MASL
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.