xóa các chuỗi sau một ký tự nhất định trong một văn bản nhất định


15

Tôi có một bộ dữ liệu như dưới đây. Tôi muốn xóa tất cả các ký tự sau © ký tự. Làm thế nào tôi có thể làm điều đó trong 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)

Là sau một nhân vật cụ thể, hoặc sau một chỉ số cụ thể?
Dawny33

Sau một nhân vật cụ thể: ©
Hamideh

Sau đó, có vẻ như câu trả lời hiện có đã giải quyết câu hỏi của bạn :)
Dawny33

Câu trả lời:


19

Ví dụ:

 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 "

Hoặc, nếu bạn muốn giữ ký tự @:

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

EDIT: Nếu điều bạn muốn là xóa mọi thứ khỏi @ cuối cùng, bạn chỉ cần làm theo ví dụ trước với regex thích hợp. Thí dụ:

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 "

Với sự phù hợp mà chúng tôi đang tìm kiếm, cả phụ và gsub sẽ cho bạn câu trả lời giống nhau.


Cảm ơn bạn. và Điều gì xảy ra nếu tôi muốn làm điều đó cho © cuối cùng trong văn bản. Hãy xem xét điều này: c ("© aaa © bbb") -> c ("© aaa")
Hamideh

@ HamidehIraj Bạn có thể sử dụng regexes để thực thi điều đó.
Dawny33

1
Không có gì. Khi bạn đã sử dụng để regex, bạn sẽ thấy rằng thật dễ dàng để xóa khỏi @ char cuối cùng. Tôi đã chỉnh sửa câu trả lời của mình để bao gồm cả trường hợp này.
MASL
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.