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


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)

Это после определенного символа или после определенного индекса?
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 дадут вам одинаковый ответ.


Спасибо. и что если я захочу сделать это для последнего © в тексте. Подумайте об этом: c ("© aaa © bbb") -> c ("© aaa")
Хамиде

@HamidehIraj Вы можете использовать регулярные выражения для выполнения этого.
Dawny33

1
Добро пожаловать. Как только вы получите регулярное выражение, вы увидите, что его так же легко удалить из последнего @ char. Я отредактировал свой ответ, чтобы включить этот случай.
MASL
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.