Điều này sẽ giúp tất cả mọi thứ trước khi giai đoạn:Hủy bỏ tất cả các ký tự trước một giai đoạn trong một chuỗi
gsub("\\..*","", data$column)
làm thế nào để giữ cho mọi thứ sau khi giai đoạn này?
Điều này sẽ giúp tất cả mọi thứ trước khi giai đoạn:Hủy bỏ tất cả các ký tự trước một giai đoạn trong một chuỗi
gsub("\\..*","", data$column)
làm thế nào để giữ cho mọi thứ sau khi giai đoạn này?
sử dụng này:
gsub(".*\\.","", data$column)
này sẽ giữ cho mọi thứ sau thời gian
Để loại bỏ tất cả các ký tự trước một giai đoạn trong một chuỗi (kể cả thời gian ).
gsub("^.*\\.","", data$column)
Ví dụ:
> data <- 'foobar.barfoo'
> gsub("^.*\\.","", data)
[1] "barfoo"
Để loại bỏ tất cả các ký tự trước khi giai đoạn đầu tiên (kể cả thời gian ).
> data <- 'foo.bar.barfoo'
> gsub("^.*?\\.","", data)
[1] "bar.barfoo"
Bạn có thể sử dụng stringi
với lookbehind
regex
library(stringi)
stri_extract_first_regex(data1, "(?<=\\.).*")
#[1] "bar.barfoo"
stri_extract_first_regex(data, "(?<=\\.).*")
#[1] "barfoo"
Nếu chuỗi không có .
, đây retuns NA
(nó không phải là rõ ràng về làm thế nào để đối phó với điều này trong câu hỏi)
stri_extract_first_regex(data2, "(?<=\\.).*")
#[1] NA
###data
data <- 'foobar.barfoo'
data1 <- 'foo.bar.barfoo'
data2 <- "foobar"
Nếu bạn không muốn nghĩ về regex cho gói này, gói qdap
có số char2end
chức năng lấy từ một ký tự cụ thể cho đến khi kết thúc chuỗi.
data <- c("foo.bar", "foo.bar.barfoo")
library(qdap)
char2end(data, ".")
## [1] "bar" "bar.barfoo"
'. *? \\.' Nên làm điều đó. – vks
Nếu chỉ có một khoảng thời gian, hãy sử dụng phủ định. '^ [^.] * \\.' – hwnd