Предположим, вектор:
xx.1 <- c("zz_ZZ_uu_d", "II_OO_d")
Я хочу получить новый вектор, разделенный справа и только один раз. Ожидаемые результаты:
c("zz_ZZ_uu", "d", "II_OO", "d").
Это было бы похоже на функцию rsplit()
Python. Моя текущая идея состоит в том, чтобы перевернуть строку и разделить ее с помощью str_split()
в stringr
.
Любые лучшие решения?
update
Вот мое решение, возвращающее n разбиений, в зависимости от stringr и stringi. Было бы неплохо, если бы кто-то предоставил версию с базовыми функциями.
rsplit <- function (x, s, n) {
cc1 <- unlist(stringr::str_split(stringi::stri_reverse(x), s, n))
cc2 <- rev(purrr::map_chr(cc1, stringi::stri_reverse))
return(cc2)
}