Entfernen von Zeichenfolgen nach einem bestimmten Zeichen in einem bestimmten Text

15

Ich habe einen Datensatz wie den folgenden. Ich möchte alle Zeichen nach dem Zeichen © entfernen. Wie kann ich das in R machen?

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
quelle
Ist es nach einem bestimmten Zeichen oder nach einem bestimmten Index?
Dawny33
Nach einem bestimmten Charakter: ©
Hamideh
Dann scheint die vorhandene Antwort Ihre Frage gelöst zu haben :)
Dawny33

Antworten:

19

Zum Beispiel:

 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 "

Oder, wenn Sie das @ -Zeichen behalten möchten:

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

BEARBEITEN: Wenn Sie alles aus dem letzten @ entfernen möchten, müssen Sie nur diesem vorherigen Beispiel mit der entsprechenden Regex folgen. Beispiel:

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 "

In Anbetracht der gesuchten Übereinstimmung erhalten Sie von sub und gsub die gleiche Antwort.

MASL
quelle
Vielen Dank. und was ist, wenn ich es für das letzte © im Text tun möchte. Bedenke dies: c ("© aaa © bbb") -> c ("© aaa")
Hamideh
@HamidehIraj Sie können reguläre Ausdrücke verwenden, um dies auszuführen.
Dawny33
1
Bitte schön. Sobald Sie sich an Regex gewöhnt haben, werden Sie feststellen, dass es genauso einfach ist, das letzte @ Zeichen zu entfernen. Ich habe meine Antwort so bearbeitet, dass auch dieser Fall berücksichtigt wird.
MASL