Ví dụ ta có vector sau:
vec_1 <- c("Canada(2013–14 est.)[7]", "Japan", "Vietnam")
vec_1
## [1] "Canada(2013–14 est.)[7]" "Japan"
## [3] "Vietnam"
Để loại bỏ phần ký tự rườm rà trong
Canada(2013–14 est.)[7] để thu được ký tự
Canada, thì ta có 2 cách để làm:
### áp dụng lệnh gsub, với tham số `fixed = TRUE`, nghĩa là tìm chính xác ký tự đó, không áp dụng regular expression trong pattern.
gsub(pattern = "Canada(2013–14 est.)[7]", replacement = "Canada", x = vec_1, fixed = TRUE) -> vec_1a
vec_1a
## [1] "Canada" "Japan" "Vietnam"
### áp dụng regular expression thì hơi rườm rà hơn.
### https://www.regular-expressions.info/refcharclass.html
gsub(pattern = "Canada[(]2013–14 est\\.[)][[]7[]]", replacement = "Canada", x = vec_1, fixed = FALSE) -> vec_1b
### ý tưởng là chúng ta dùng `[]` để escape riêng từng ký tự đặc biệt là các dấu `()` và chính dấu `[]`, ở dấu chấm `.` thì cũng escape bằng 2 dấu backslash thì R mới nhận ra cú pháp regex để tìm và thay thế.
vec_1b
## [1] "Canada" "Japan" "Vietnam"
identical(vec_1a, vec_1b)
## [1] TRUE