Cách search chữ viết hoa và viết thường trong R

Bạn có vector a chứa các cụm từ như sau:

a <- c("Rice", "riice", "RICE", "rice", "RiCe", "ricE")

a
## [1] "Rice"  "riice" "RICE"  "rice"  "RiCe"  "ricE"

Nếu dùng lệnh grep với tham số ignore.case = TRUE thì sẽ tìm được các thành phần trong vector a gồm cả viết hoa và viết thường:

grep("rice", a, ignore.case = TRUE, value = TRUE)
## [1] "Rice" "RICE" "rice" "RiCe" "ricE"

Nếu tham số ignore.case = FALSE thì chỉ tìm được các thành phần tương ứng nội dung cần tìm là rice

grep("rice", a, ignore.case = FALSE, value = TRUE)
## [1] "rice"

Tuy nhiên, để kết quả tìm được chính xác với từ rice chỉ ở những hình thức viết đúng là viết hoa toàn bộ, viết hoa chữ đầu, hay viết thường toàn bộ thì bạn nên dùng regular expression là chính xác nhất.

grep("(R(ICE|ice)|rice)", a, ignore.case = FALSE, value = TRUE)
## [1] "Rice" "RICE" "rice"

Ngoài ra, còn có tham số fixed = TRUE/FALSE giúp xác định tìm chính xác cụm từ trong tham số pattern.

Lưu ý về regular expression