这可以在一段时间之前保留所有内容:
gsub("\\..*","", data$column )
如何在一段时间后保留所有内容?
答案 0 :(得分:17)
删除字符串中句点之前的所有字符(包括句号)。
gsub("^.*\\.","", data$column )
示例:
> data <- 'foobar.barfoo'
> gsub("^.*\\.","", data)
[1] "barfoo"
删除第一个句点之前的所有字符(包括句号)。
> data <- 'foo.bar.barfoo'
> gsub("^.*?\\.","", data)
[1] "bar.barfoo"
答案 1 :(得分:2)
您可以将stringi
与lookbehind
正则表达式
library(stringi)
stri_extract_first_regex(data1, "(?<=\\.).*")
#[1] "bar.barfoo"
stri_extract_first_regex(data, "(?<=\\.).*")
#[1] "barfoo"
如果字符串没有.
,则会重新调整NA
(目前还不清楚如何在问题中处理此问题)
stri_extract_first_regex(data2, "(?<=\\.).*")
#[1] NA
###data
data <- 'foobar.barfoo'
data1 <- 'foo.bar.barfoo'
data2 <- "foobar"
答案 2 :(得分:1)
使用它:
gsub(".*\\.","", data$column )
这将保留一段时间后的所有内容
答案 3 :(得分:1)
如果您不想为此考虑正则表达式,qdap
包具有char2end
函数,该函数从特定字符抓取直到字符串结尾。
data <- c("foo.bar", "foo.bar.barfoo")
library(qdap)
char2end(data, ".")
## [1] "bar" "bar.barfoo"
答案 4 :(得分:0)
require(stringr)
我开设了一个有关数据分析的课程,学生们想到了这个解决方案:
get_after_period <- function(my_vector) {
# Return a string vector without the characters
# before a period (excluding the period)
# my_vector, a string vector
str_sub(my_vector, str_locate(my_vector, "\\.")[,1]+1)
}
现在,只需调用函数:
my_vector <- c('foobar.barfoo', 'amazing.point')
get_after_period(my_vector)
[1] "barfoo" "point"