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.