2012-05-24 32 views
9

VớiTrong R, cách sử dụng regex [: punct:] trong gsub?

test<-"Low-Decarie, Etienne" 

Tôi muốn thay thế tất cả các dấu chấm câu với không gian

gsub(pattern="[:punct:]", x=test, replacement=" ") 

nhưng điều này tạo ra

"Low-De arie, E ie e" 

nơi không có dấu chấm câu được thay thế và dường như ký tự ngẫu nhiên được loại bỏ (mặc dù họ có thể được kết hợp với dấu chấm câu như t cho tab và n cho dòng tiếp theo).

+9

'pattern = "[[: punct:]]"? '... – kohske

+6

Các ví dụ phần của' gsub' đưa ra ví dụ của @kohske câu trả lời cung cấp . Và các chữ cái bị xóa không phải là ngẫu nhiên; chúng nằm trong tập hợp của {p, u, n, c, t ,:}. –

Trả lời

18

Người dùng MontReal ở đây.

Một số tùy chọn, kết quả tìm kiếm.

Trong R Base, chỉ tăng gấp đôi dấu ngoặc

gsub(pattern="[[:punct:]]", test, replacement=" ") 

[1] "Low Decarie Etienne" 

Gói stringr có chức năng str_replace_all nào đó.

library(stringr) 
str_replace_all(test, "[[:punct:]]", " ") 

Hoặc giữ chỉ thư

str_replace_all(test, "[^[:alnum:]]", " ") 
Các vấn đề liên quan