2014-09-23 21 views

Trả lời

1

sử dụng này:

gsub(".*\\.","", data$column) 

này sẽ giữ cho mọi thứ sau thời gian

12

Để 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" 
2

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" 
1

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" 
Các vấn đề liên quan