удаление строк после определенного символа в данном тексте

15

У меня есть набор данных, как показано ниже. Я хочу удалить все символы после символа ©. Как я могу сделать это в 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
источник
Это после определенного символа или после определенного индекса?
Dawny33
После конкретного персонажа: ©
Hamideh
Тогда, похоже, существующий ответ решил ваш вопрос :)
Dawny33

Ответы:

19

Например:

 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 "

Или, если вы хотите сохранить символ @:

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

РЕДАКТИРОВАТЬ: Если вы хотите удалить все из последнего @ на вас просто следуйте этому предыдущему примеру с соответствующим регулярным выражением. Пример:

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 "

Учитывая соответствие, которое мы ищем, sub и gsub дадут вам одинаковый ответ.

MASL
источник
Спасибо. и что если я захочу сделать это для последнего © в тексте. Подумайте об этом: c ("© aaa © bbb") -> c ("© aaa")
Хамиде
@HamidehIraj Вы можете использовать регулярные выражения для выполнения этого.
Dawny33
1
Добро пожаловать. Как только вы получите регулярное выражение, вы увидите, что его так же легко удалить из последнего @ char. Я отредактировал свой ответ, чтобы включить этот случай.
MASL