Это сохраняет все до периода:
gsub("\\..*","", data$column )
как сохранить все после периода?
Это сохраняет все до периода:
gsub("\\..*","", data$column )
как сохранить все после периода?
Чтобы удалить все символы до периода в строке (включая период).
gsub("^.*\\.","", data$column )
Пример:
> data <- 'foobar.barfoo'
> gsub("^.*\\.","", data)
[1] "barfoo"
Чтобы удалить все символы до первого периода (включая период).
> data <- 'foo.bar.barfoo'
> gsub("^.*?\\.","", data)
[1] "bar.barfoo"
Вы можете использовать stringi
с lookbehind
regex
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"
используйте это:
gsub(".*\\.","", data$column )
это будет держать все после периода
Если вы не хотите думать об этом регулярном выражении, пакет qdap
имеет функцию char2end
, которая захватывает определенный символ до конца строки.
data <- c("foo.bar", "foo.bar.barfoo")
library(qdap)
char2end(data, ".")
## [1] "bar" "bar.barfoo"
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"