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


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

Після конкретного символу: ©
Гаміде

Тоді, схоже, існуюча відповідь вирішила ваше запитання :)
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 @"

EDIT: Якщо ви хочете, щоб вилучити все з останнього @ on, вам просто потрібно слідувати цьому попередньому прикладу з відповідним регулярним виразом. Приклад:

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 Ви можете скористатися регулярними виразами для цього.
Світанок33

1
Будь ласка. Як тільки ви скористаєтесь регулярним виразом, ви побачите, що його так само просто видалити з останнього @ char. Я відредагував свою відповідь, щоб включити і цю справу.
МАСЛ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.