Tương tự với @Matthew_Plourde bằng cách sử dụng gsub
Tuy nhiên, sử dụng một mẫu sẽ cắt thành không ký tự, tức là trả về "" nếu chuỗi gốc ngắn hơn số ký tự cần cắt:
cs <- c("foo_bar","bar_foo","apple","beer","so","a")
gsub('.{0,3}$', '', cs)
# [1] "foo_" "bar_" "ap" "b" "" ""
Sự khác biệt là, bộ {0,3}
định lượng chỉ ra từ 0 đến 3 kết quả phù hợp, trong khi {3}
yêu cầu chính xác 3 kết quả phù hợp, nếu không sẽ không tìm thấy kết quả phù hợp nào trong trường hợp này gsub
trả về chuỗi ban đầu, không được sửa đổi.
NB sử dụng {,3}
sẽ tương đương với {0,3}
, tôi chỉ đơn giản thích ký hiệu sau hơn.
Xem tại đây để biết thêm thông tin về bộ định lượng regex:
https://www.regular-expressions.info/refrepeat.html
-3
để-0
có được hiệu quả mong muốn! Tôi có rất nhiều dữ liệu với ngày tháng, như:"2014-03-27 23:00:00 GMT" "2014-03-31 00:00:00 BST"
- vâng, hai múi giờ cùng nhau và hàm as.Date trả về kết quả không mong muốn (sớm hơn một ngày đối với các ngày BST) - do đó tôi muốn xóa tem múi giờ, hóa ra tôi phải làm-0
và nó biến mất, cùng với hàng giờ