eliminar cadenas después de cierto carácter en un texto dado

15

Tengo un conjunto de datos como el siguiente. Quiero eliminar todos los caracteres después del carácter ©. ¿Cómo puedo hacer eso en 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
fuente
¿Es después de un personaje específico o después de un índice específico?
Dawny33
Después de un personaje específico: ©
Hamideh
Entonces, parece que la respuesta existente resolvió su pregunta :)
Dawny33

Respuestas:

19

Por ejemplo:

 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 "

O, si quieres mantener el carácter @:

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

EDITAR: si lo que desea es eliminar todo de la última @, solo tiene que seguir este ejemplo anterior con la expresión regular adecuada. Ejemplo:

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 "

Dada la coincidencia que estamos buscando, tanto sub como gsub le darán la misma respuesta.

MASL
fuente
Gracias. y ¿Qué pasa si quiero hacerlo para el último © en el texto? Considere esto: c ("© aaa © bbb") -> c ("© aaa")
Hamideh
@HamidehIraj Puedes usar expresiones regulares para ejecutar eso.
Dawny33
1
De nada. Una vez que te acostumbres a regex verás que es tan fácil de eliminar del último @ char. He editado mi respuesta para incluir este caso también.
MASL