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)
Hamideh
la source
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.

MASL
la source
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