r - str_split_fixed 从右到左

标签 r stringr

我尝试过搜索此内容,并且确信答案就在那里,但没有运气。

我正在尝试使用 stringr 包,但要让它从右到左读取文本行。

library(stringr)
fruits <- c("apples and oranges and pears and bananas", "pineapples and mangos and guavas")
str_split_fixed(fruits, " and ", 3)

这将返回:

"apples"     "oranges" "pears and bananas"
"pineapples" "mangos" "guavas"

我正在尝试让它返回:

"apples and oranges" "pears" "bananas"
"pineapples" "mangos" "guavas"

最佳答案

它可能不在base、stringrstringi中,但你可以自己实现它:

sapply(stri_split_fixed(stri_reverse(fruits), " dna ", 3)[[1]], stri_reverse, USE.NAMES=FALSE)
## [1] "bananas"            "pears"              "apples and oranges"

并且,对于更大的示例数据:

fruits <- c("apples and oranges and pears and bananas", 
            "pineapples and mangos and guavas")

do.call(rbind, lapply(stri_reverse(fruits), function(x) {
  rev(sapply(stri_split_fixed(x, " dna ", 3)[[1]], stri_reverse, USE.NAMES=FALSE))
}))

##      [,1]                 [,2]     [,3]              
## [1,] "apples and oranges" "pears"  "bananas"
## [2,] "pineapples"         "mangos" "guavas" 

此外,理查德改编的修改版本:

matrix(rev(stri_reverse(str_split_fixed(stri_reverse(fruits), 
                                        stri_reverse(" and "), 3))),
       nrow=length(fruits), ncol=3, byrow=TRUE)

这可能更有效。

关于r - str_split_fixed 从右到左,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33643075/

相关文章:

r - 如何在聚类树状图中为分支着色?

r - 更改 `docker`示例脚本以在本地文件(R包)上运行

正则表达式、R 和逗号

r - data.table 中的多个正则表达式匹配和赋值

替换引用命名向量的整个字符串

r - 取消列出数据框列并将它们粘贴在一起

r - 如何使广义函数更新向量的值?

r - 这是什么错误 : File does not exist error with roxygenise?

r - 使用分组变量确定项目的所有可能组合

python - 通过部分匹配大于 n 个字符的单词的两列来子集行