【发布时间】:2013-12-08 14:55:54
【问题描述】:
假设一个向量:
xx.1 <- c("zz_ZZ_uu_d", "II_OO_d")
我想从最右边得到一个新的向量,并且只拆分一次。预期结果是:
c("zz_ZZ_uu", "d", "II_OO", "d").
这就像 python 的 rsplit() 函数。我目前的想法是反转字符串,并在stringr 中拆分str_split()。
有更好的解决方案吗?
更新
这是我返回 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)
}
【问题讨论】: